A guide to Refactoring mock clones in cloudstack

Mock Clone Instance #cloudstack_MCI_1

Reusable Method

private static AccountService createMockAccountService(Account account) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.getAccount(Mockito.<Long>nullable(Long.class))).thenReturn(account); return accountService; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_1_1

Test Case Name: testCreateSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\AddVpnUserCmdTest.java)

Mock Object Variable Name: accountService

Suggested Diff
--- original +++ refactored @@ public void testCreateSuccess() { - AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); - Mockito.when(accountService.getAccount(nullable(Long.class))).thenReturn(account); + AccountService accountService = createMockAccountService(account); addVpnUserCmd._accountService = accountService; RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class); VpnUser vpnUser = Mockito.mock(VpnUser.class); Mockito.when(ravService.addVpnUser(anyLong(), isNull(), isNull())).thenReturn(vpnUser); addVpnUserCmd._ravService = ravService; addVpnUserCmd.create(); }
Original Test Code (click to expand)
@Test public void testCreateSuccess() { AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); Mockito.when(accountService.getAccount(nullable(Long.class))).thenReturn(account); addVpnUserCmd._accountService = accountService; RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class); VpnUser vpnUser = Mockito.mock(VpnUser.class); Mockito.when(ravService.addVpnUser(anyLong(), isNull(), isNull())).thenReturn(vpnUser); addVpnUserCmd._ravService = ravService; addVpnUserCmd.create(); }
Reusable Method for MCI (click to expand)
private static AccountService createMockAccountService(Account account) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.getAccount(Mockito.<Long>nullable(Long.class))).thenReturn(account); return accountService; }

Test Case ID #cloudstack_Test_1_2

Test Case Name: testCreateFailure(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\AddVpnUserCmdTest.java)

Mock Object Variable Name: accountService

Suggested Diff
--- original +++ refactored @@ @Test public void testCreateFailure() { - AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); - Mockito.when(accountService.getAccount(nullable(Long.class))).thenReturn(account); + AccountService accountService = createMockAccountService(account); addVpnUserCmd._accountService = accountService; RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class); Mockito.when(ravService.addVpnUser(anyLong(), isNull(), isNull())).thenReturn(null); addVpnUserCmd._ravService = ravService; try { addVpnUserCmd.create(); } catch (ServerApiException exception) { Assert.assertEquals("Failed to add vpn user", exception.getDescription()); } } @@
Original Test Code (click to expand)
@Test public void testCreateFailure() { AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); Mockito.when(accountService.getAccount(nullable(Long.class))).thenReturn(account); addVpnUserCmd._accountService = accountService; RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class); Mockito.when(ravService.addVpnUser(anyLong(), isNull(), isNull())).thenReturn(null); addVpnUserCmd._ravService = ravService; try { addVpnUserCmd.create(); } catch (ServerApiException exception) { Assert.assertEquals("Failed to add vpn user", exception.getDescription()); } }
Reusable Method for MCI (click to expand)
private static AccountService createMockAccountService(Account account) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.getAccount(Mockito.<Long>nullable(Long.class))).thenReturn(account); return accountService; }

Mock Clone Instance #cloudstack_MCI_2

Reusable Method

private static AccountService createMockAccountService(Account account) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.getAccount(Mockito.anyLong())).thenReturn(account); return accountService; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_2_1

Test Case Name: testCreateSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\CreateSnapshotCmdTest.java)

Mock Object Variable Name: accountService

Suggested Diff
--- original +++ refactored @@ @Test public void testCreateSuccess() { - AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); - Mockito.when(accountService.getAccount(anyLong())).thenReturn(account); + AccountService accountService = createMockAccountService(account); VolumeApiService volumeApiService = Mockito.mock(VolumeApiService.class); Snapshot snapshot = Mockito.mock(Snapshot.class); try { Mockito.when(volumeApiService.takeSnapshot(nullable(Long.class), nullable(Long.class), isNull(), nullable(Account.class), nullable(Boolean.class), nullable(Snapshot.LocationType.class), nullable(Boolean.class), nullable(Map.class))).thenReturn(snapshot); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } responseGenerator = Mockito.mock(ResponseGenerator.class); SnapshotResponse snapshotResponse = Mockito.mock(SnapshotResponse.class); Mockito.when(responseGenerator.createSnapshotResponse(snapshot)).thenReturn(snapshotResponse); Mockito.doNothing().when(snapshotResponse).setAccountName(anyString()); createSnapshotCmd._accountService = accountService; createSnapshotCmd._responseGenerator = responseGenerator; createSnapshotCmd._volumeService = volumeApiService; try { createSnapshotCmd.execute(); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } }
Original Test Code (click to expand)
@Test public void testCreateSuccess() { AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); Mockito.when(accountService.getAccount(anyLong())).thenReturn(account); VolumeApiService volumeApiService = Mockito.mock(VolumeApiService.class); Snapshot snapshot = Mockito.mock(Snapshot.class); try { Mockito.when(volumeApiService.takeSnapshot(nullable(Long.class), nullable(Long.class), isNull(), nullable(Account.class), nullable(Boolean.class), nullable(Snapshot.LocationType.class), nullable(Boolean.class), nullable(Map.class))).thenReturn(snapshot); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } responseGenerator = Mockito.mock(ResponseGenerator.class); SnapshotResponse snapshotResponse = Mockito.mock(SnapshotResponse.class); Mockito.when(responseGenerator.createSnapshotResponse(snapshot)).thenReturn(snapshotResponse); Mockito.doNothing().when(snapshotResponse).setAccountName(anyString()); createSnapshotCmd._accountService = accountService; createSnapshotCmd._responseGenerator = responseGenerator; createSnapshotCmd._volumeService = volumeApiService; try { createSnapshotCmd.execute(); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static AccountService createMockAccountService(Account account) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.getAccount(Mockito.anyLong())).thenReturn(account); return accountService; }

Test Case ID #cloudstack_Test_2_2

Test Case Name: testCreateFailure(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\CreateSnapshotCmdTest.java)

Mock Object Variable Name: accountService

Suggested Diff
--- original +++ refactored @@ public void testCreateFailure() { - AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); - Mockito.when(accountService.getAccount(anyLong())).thenReturn(account); + AccountService accountService = createMockAccountService(account); VolumeApiService volumeApiService = Mockito.mock(VolumeApiService.class); try { Mockito.when(volumeApiService.takeSnapshot(nullable(Long.class), nullable(Long.class), nullable(Long.class), nullable(Account.class), nullable(Boolean.class), nullable(Snapshot.LocationType.class), nullable(Boolean.class), anyObject())).thenReturn(null); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } createSnapshotCmd._accountService = accountService; createSnapshotCmd._volumeService = volumeApiService; try { createSnapshotCmd.execute(); } catch (ServerApiException exception) { Assert.assertEquals("Failed to create snapshot due to an internal error creating snapshot for volume 123", exception.getDescription()); } } @@
Original Test Code (click to expand)
@Test public void testCreateFailure() { AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); Mockito.when(accountService.getAccount(anyLong())).thenReturn(account); VolumeApiService volumeApiService = Mockito.mock(VolumeApiService.class); try { Mockito.when(volumeApiService.takeSnapshot(nullable(Long.class), nullable(Long.class), nullable(Long.class), nullable(Account.class), nullable(Boolean.class), nullable(Snapshot.LocationType.class), nullable(Boolean.class), anyObject())).thenReturn(null); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } createSnapshotCmd._accountService = accountService; createSnapshotCmd._volumeService = volumeApiService; try { createSnapshotCmd.execute(); } catch (ServerApiException exception) { Assert.assertEquals("Failed to create snapshot due to an internal error creating snapshot for volume 123", exception.getDescription()); } }
Reusable Method for MCI (click to expand)
private static AccountService createMockAccountService(Account account) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.getAccount(Mockito.anyLong())).thenReturn(account); return accountService; }

Mock Clone Instance #cloudstack_MCI_3

Reusable Method

public class MockAccountService { public static AccountService createMockAccountService(String username, long domainId, UserAccountVO userAccount) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.createUserAccount( Mockito.eq(username), Mockito.eq(""), Mockito.eq("Admin"), Mockito.eq("Admin"), Mockito.eq("admin@ccp.citrix.com"), Mockito.isNull(String.class), Mockito.eq(username), Mockito.eq(Account.Type.DOMAIN_ADMIN), Mockito.eq(RoleType.DomainAdmin.getId()), Mockito.eq(domainId), Mockito.isNull(String.class), (java.util.Map<String, String>) Mockito.isNull(), Mockito.anyString(), Mockito.anyString(), Mockito.eq(User.Source.LDAP) )).thenReturn(userAccount); return accountService; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_3_1

Test Case Name: execute(File: C:\Java_projects\Apache\cloudstack\plugins\user-authenticators\ldap\src\test\java\org\apache\cloudstack\api\command\LinkAccountToLdapCmdTest.java)

Mock Object Variable Name: accountService

Suggested Diff
@@ when(ldapManager.linkAccountToLdap(linkAccountToLdapCmd)).thenReturn(response); when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); - when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); - when(accountService.createUserAccount(eq(username), eq(""), eq("Admin"), eq("Admin"), eq("admin@ccp.citrix.com"), isNull(String.class), eq(username), eq(Account.Type.DOMAIN_ADMIN), eq(RoleType.DomainAdmin.getId()), eq(domainId), isNull(String.class), (java.util.Map<String, String>) isNull(), anyString(), anyString(), eq(User.Source.LDAP))).thenReturn(userAccount); + accountService = MockAccountService.createMockAccountService(username, domainId, userAccount); + when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); linkAccountToLdapCmd.execute(); LinkAccountToLdapResponse result = (LinkAccountToLdapResponse) linkAccountToLdapCmd.getResponseObject(); assertEquals("objectName", BaseCmd.getCommandNameByClass(LinkAccountToLdapCmd.class), result.getObjectName()); @@
Original Test Code (click to expand)
@Test public void execute() throws Exception { // test with valid params and with admin who doesn't exist in cloudstack long domainId = 1; String type = "GROUP"; String ldapDomain = "CN=test,DC=ccp,DC=Citrix,DC=com"; Account.Type accountType = Account.Type.DOMAIN_ADMIN; String username = "admin"; long accountId = 24; String accountName = "test"; setHiddenField(linkAccountToLdapCmd, "ldapDomain", ldapDomain); setHiddenField(linkAccountToLdapCmd, "admin", username); setHiddenField(linkAccountToLdapCmd, "type", type); setHiddenField(linkAccountToLdapCmd, "domainId", domainId); setHiddenField(linkAccountToLdapCmd, "accountType", accountType.ordinal()); setHiddenField(linkAccountToLdapCmd, "accountName", accountName); LinkAccountToLdapResponse response = new LinkAccountToLdapResponse(String.valueOf(domainId), type, ldapDomain, accountType.ordinal(), username, accountName); when(ldapManager.linkAccountToLdap(linkAccountToLdapCmd)).thenReturn(response); when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); when(accountService.createUserAccount(eq(username), eq(""), eq("Admin"), eq("Admin"), eq("admin@ccp.citrix.com"), isNull(String.class), eq(username), eq(Account.Type.DOMAIN_ADMIN), eq(RoleType.DomainAdmin.getId()), eq(domainId), isNull(String.class), (java.util.Map<String, String>) isNull(), anyString(), anyString(), eq(User.Source.LDAP))).thenReturn(userAccount); linkAccountToLdapCmd.execute(); LinkAccountToLdapResponse result = (LinkAccountToLdapResponse) linkAccountToLdapCmd.getResponseObject(); assertEquals("objectName", BaseCmd.getCommandNameByClass(LinkAccountToLdapCmd.class), result.getObjectName()); assertEquals("commandName", linkAccountToLdapCmd.getCommandName(), result.getResponseName()); assertEquals("domainId", String.valueOf(domainId), result.getDomainId()); assertEquals("type", type, result.getType()); assertEquals("name", ldapDomain, result.getLdapDomain()); assertEquals("accountId", String.valueOf(accountId), result.getAdminId()); } @Before public void setUp() throws NoSuchFieldException, IllegalAccessException { linkAccountToLdapCmd = new LinkAccountToLdapCmd(); setHiddenField(linkAccountToLdapCmd, "_ldapManager", ldapManager); setHiddenField(linkAccountToLdapCmd, "_accountService", accountService); }
Reusable Method for MCI (click to expand)
public class MockAccountService { public static AccountService createMockAccountService(String username, long domainId, UserAccountVO userAccount) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.createUserAccount( Mockito.eq(username), Mockito.eq(""), Mockito.eq("Admin"), Mockito.eq("Admin"), Mockito.eq("admin@ccp.citrix.com"), Mockito.isNull(String.class), Mockito.eq(username), Mockito.eq(Account.Type.DOMAIN_ADMIN), Mockito.eq(RoleType.DomainAdmin.getId()), Mockito.eq(domainId), Mockito.isNull(String.class), (java.util.Map<String, String>) Mockito.isNull(), Mockito.anyString(), Mockito.anyString(), Mockito.eq(User.Source.LDAP) )).thenReturn(userAccount); return accountService; } }

Test Case ID #cloudstack_Test_3_2

Test Case Name: execute(File: C:\Java_projects\Apache\cloudstack\plugins\user-authenticators\ldap\src\test\java\org\apache\cloudstack\api\command\LinkDomainToLdapCmdTest.java)

Mock Object Variable Name: accountService

Suggested Diff
@@ setHiddenField(linkDomainToLdapCmd, "ldapDomain", ldapDomain); setHiddenField(linkDomainToLdapCmd, "admin", username); setHiddenField(linkDomainToLdapCmd, "type", type); setHiddenField(linkDomainToLdapCmd, "domainId", domainId); setHiddenField(linkDomainToLdapCmd, "accountType", accountType.ordinal()); LinkDomainToLdapResponse response = new LinkDomainToLdapResponse(domainId.toString(), type, ldapDomain, accountType.ordinal()); when(ldapManager.linkDomainToLdap(linkDomainToLdapCmd)).thenReturn(response); when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); - when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); - when(accountService.createUserAccount(eq(username), eq(""), eq("Admin"), eq("Admin"), eq("admin@ccp.citrix.com"), isNull(String.class), eq(username), eq(Account.Type.DOMAIN_ADMIN), eq(RoleType.DomainAdmin.getId()), eq(domainId), isNull(String.class), (java.util.Map<String, String>) isNull(), anyString(), anyString(), eq(User.Source.LDAP))).thenReturn(userAccount); + accountService = MockAccountService.createMockAccountService(username, domainId, userAccount); + when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); linkDomainToLdapCmd.execute(); LinkDomainToLdapResponse result = (LinkDomainToLdapResponse) linkDomainToLdapCmd.getResponseObject(); assertEquals("objectName", "LinkDomainToLdap", result.getObjectName()); assertEquals("commandName", linkDomainToLdapCmd.getCommandName(), result.getResponseName()); assertEquals("domainId", domainId.toString(), result.getDomainId()); assertEquals("type", type, result.getType()); assertEquals("name", ldapDomain, result.getLdapDomain()); assertEquals("accountId", String.valueOf(accountId), result.getAdminId()); @@
Original Test Code (click to expand)
@Before public void setUp() throws NoSuchFieldException, IllegalAccessException { linkDomainToLdapCmd = new LinkDomainToLdapCmd(); setHiddenField(linkDomainToLdapCmd, "_ldapManager", ldapManager); setHiddenField(linkDomainToLdapCmd, "_accountService", accountService); } @Test public void execute() throws Exception { // test with valid params and with admin who doesn't exist in cloudstack Long domainId = 1L; String type = "GROUP"; String ldapDomain = "CN=test,DC=ccp,DC=Citrix,DC=com"; Account.Type accountType = Account.Type.DOMAIN_ADMIN; String username = "admin"; long accountId = 24; setHiddenField(linkDomainToLdapCmd, "ldapDomain", ldapDomain); setHiddenField(linkDomainToLdapCmd, "admin", username); setHiddenField(linkDomainToLdapCmd, "type", type); setHiddenField(linkDomainToLdapCmd, "domainId", domainId); setHiddenField(linkDomainToLdapCmd, "accountType", accountType.ordinal()); LinkDomainToLdapResponse response = new LinkDomainToLdapResponse(domainId.toString(), type, ldapDomain, accountType.ordinal()); when(ldapManager.linkDomainToLdap(linkDomainToLdapCmd)).thenReturn(response); when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); when(accountService.createUserAccount(eq(username), eq(""), eq("Admin"), eq("Admin"), eq("admin@ccp.citrix.com"), isNull(String.class), eq(username), eq(Account.Type.DOMAIN_ADMIN), eq(RoleType.DomainAdmin.getId()), eq(domainId), isNull(String.class), (java.util.Map<String, String>) isNull(), anyString(), anyString(), eq(User.Source.LDAP))).thenReturn(userAccount); linkDomainToLdapCmd.execute(); LinkDomainToLdapResponse result = (LinkDomainToLdapResponse) linkDomainToLdapCmd.getResponseObject(); assertEquals("objectName", "LinkDomainToLdap", result.getObjectName()); assertEquals("commandName", linkDomainToLdapCmd.getCommandName(), result.getResponseName()); assertEquals("domainId", domainId.toString(), result.getDomainId()); assertEquals("type", type, result.getType()); assertEquals("name", ldapDomain, result.getLdapDomain()); assertEquals("accountId", String.valueOf(accountId), result.getAdminId()); }
Reusable Method for MCI (click to expand)
public class MockAccountService { public static AccountService createMockAccountService(String username, long domainId, UserAccountVO userAccount) { AccountService accountService = Mockito.mock(AccountService.class); Mockito.when(accountService.createUserAccount( Mockito.eq(username), Mockito.eq(""), Mockito.eq("Admin"), Mockito.eq("Admin"), Mockito.eq("admin@ccp.citrix.com"), Mockito.isNull(String.class), Mockito.eq(username), Mockito.eq(Account.Type.DOMAIN_ADMIN), Mockito.eq(RoleType.DomainAdmin.getId()), Mockito.eq(domainId), Mockito.isNull(String.class), (java.util.Map<String, String>) Mockito.isNull(), Mockito.anyString(), Mockito.anyString(), Mockito.eq(User.Source.LDAP) )).thenReturn(userAccount); return accountService; } }

Mock Clone Instance #cloudstack_MCI_4

Reusable Method

public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_4_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: _networkModel

Suggested Diff
--- Original.java +++ Refactored.java @@ -NetworkModel _networkModel = mock(NetworkModel.class); +NetworkModel _networkModel = MockNetworkModel.createMockNetworkModel(Provider.CiscoVnmc, 1L, true); // Standard responses -when(_networkModel.isProviderForNetwork(Provider.CiscoVnmc, 1L)).thenReturn(true); _element.configure("CiscoVnmcTestElement", Collections.<String, Object>emptyMap()); @@ when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); - when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); + when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class);
Original Test Code (click to expand)
@Before public void setUp() throws ConfigurationException { _element._resourceMgr = mock(ResourceManager.class); _element._agentMgr = _agentMgr; _element._networkMgr = _networkMgr; _element._networkModel = _networkModel; _element._hostDao = _hostDao; _element._configMgr = _configMgr; _element._ciscoVnmcDao = _ciscoVnmcDao; _element._ciscoAsa1000vDao = _ciscoAsa1000vDao; _element._networkAsa1000vMapDao = _networkAsa1000vMapDao; _element._clusterVsmMapDao = _clusterVsmMapDao; _element._vsmDeviceDao = _vsmDeviceDao; _element._vlanDao = _vlanDao; _element._entityMgr = _entityMgr; // Standard responses when(_networkModel.isProviderForNetwork(Provider.CiscoVnmc, 1L)).thenReturn(true); _element.configure("CiscoVnmcTestElement", Collections.<String, Object>emptyMap()); } @Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_2

Test Case Name: applyFWRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: _networkModel

Suggested Diff
--- Original +++ Refactored @@ when(ipAddress.getAddress()).thenReturn(ip); - when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); - when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); + _networkModel = MockNetworkModel.createMockNetworkModel(Provider.CiscoVnmc, 1L, true); + when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); + when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); @@
Original Test Code (click to expand)
@Test public void applyFWRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); FirewallRule rule = mock(FirewallRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); List<FirewallRule> rules = new ArrayList<FirewallRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetFirewallRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyFWRules(network, rules)); } @Before public void setUp() throws ConfigurationException { _element._resourceMgr = mock(ResourceManager.class); _element._agentMgr = _agentMgr; _element._networkMgr = _networkMgr; _element._networkModel = _networkModel; _element._hostDao = _hostDao; _element._configMgr = _configMgr; _element._ciscoVnmcDao = _ciscoVnmcDao; _element._ciscoAsa1000vDao = _ciscoAsa1000vDao; _element._networkAsa1000vMapDao = _networkAsa1000vMapDao; _element._clusterVsmMapDao = _clusterVsmMapDao; _element._vsmDeviceDao = _vsmDeviceDao; _element._vlanDao = _vlanDao; _element._entityMgr = _entityMgr; // Standard responses when(_networkModel.isProviderForNetwork(Provider.CiscoVnmc, 1L)).thenReturn(true); _element.configure("CiscoVnmcTestElement", Collections.<String, Object>emptyMap()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_3

Test Case Name: applyPRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: _networkModel

Suggested Diff
--- Original +++ Refactored @@ when(ipAddress.getVlanId()).thenReturn(1L); - when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); - when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); + _networkModel = MockNetworkModel.createMockNetworkModel(Provider.CiscoVnmc, 1L, true); + when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); + when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); @@
Original Test Code (click to expand)
@Before public void setUp() throws ConfigurationException { _element._resourceMgr = mock(ResourceManager.class); _element._agentMgr = _agentMgr; _element._networkMgr = _networkMgr; _element._networkModel = _networkModel; _element._hostDao = _hostDao; _element._configMgr = _configMgr; _element._ciscoVnmcDao = _ciscoVnmcDao; _element._ciscoAsa1000vDao = _ciscoAsa1000vDao; _element._networkAsa1000vMapDao = _networkAsa1000vMapDao; _element._clusterVsmMapDao = _clusterVsmMapDao; _element._vsmDeviceDao = _vsmDeviceDao; _element._vlanDao = _vlanDao; _element._entityMgr = _entityMgr; // Standard responses when(_networkModel.isProviderForNetwork(Provider.CiscoVnmc, 1L)).thenReturn(true); _element.configure("CiscoVnmcTestElement", Collections.<String, Object>emptyMap()); } @Test public void applyPRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); PortForwardingRule rule = mock(PortForwardingRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestinationIpAddress()).thenReturn(ip); List<PortForwardingRule> rules = new ArrayList<PortForwardingRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetPortForwardingRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyPFRules(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_4

Test Case Name: applyStaticNatsTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: _networkModel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Before public void setUp() throws ConfigurationException { - _element._resourceMgr = mock(ResourceManager.class); - _element._agentMgr = _agentMgr; - _element._networkMgr = _networkMgr; - _element._networkModel = _networkModel; - _element._hostDao = _hostDao; - _element._configMgr = _configMgr; - _element._ciscoVnmcDao = _ciscoVnmcDao; - _element._ciscoAsa1000vDao = _ciscoAsa1000vDao; - _element._networkAsa1000vMapDao = _networkAsa1000vMapDao; - _element._clusterVsmMapDao = _clusterVsmMapDao; - _element._vsmDeviceDao = _vsmDeviceDao; - _element._vlanDao = _vlanDao; - _element._entityMgr = _entityMgr; - // Standard responses - when(_networkModel.isProviderForNetwork(Provider.CiscoVnmc, 1L)).thenReturn(true); + _element._resourceMgr = mock(ResourceManager.class); + _element._agentMgr = _agentMgr; + _element._networkMgr = _networkMgr; + // _networkModel will be set in the test method + _element._hostDao = _hostDao; + _element._configMgr = _configMgr; + _element._ciscoVnmcDao = _ciscoVnmcDao; + _element._ciscoAsa1000vDao = _ciscoAsa1000vDao; + _element._networkAsa1000vMapDao = _networkAsa1000vMapDao; + _element._clusterVsmMapDao = _clusterVsmMapDao; + _element._vsmDeviceDao = _vsmDeviceDao; + _element._vlanDao = _vlanDao; + _element._entityMgr = _entityMgr; _element.configure("CiscoVnmcTestElement", Collections.<String, Object>emptyMap()); } @Test public void applyStaticNatsTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); + _networkModel = MockNetworkModel.createMockNetworkModel(Provider.CiscoVnmc, 1L, true); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.StaticNat, Provider.CiscoVnmc)).thenReturn(true); _element._networkModel = _networkModel; List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); StaticNat rule = mock(StaticNat.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestIpAddress()).thenReturn("1.2.3.4"); when(rule.isForRevoke()).thenReturn(false); List<StaticNat> rules = new ArrayList<StaticNat>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetStaticNatRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyStaticNats(network, rules)); } @@
Original Test Code (click to expand)
@Before public void setUp() throws ConfigurationException { _element._resourceMgr = mock(ResourceManager.class); _element._agentMgr = _agentMgr; _element._networkMgr = _networkMgr; _element._networkModel = _networkModel; _element._hostDao = _hostDao; _element._configMgr = _configMgr; _element._ciscoVnmcDao = _ciscoVnmcDao; _element._ciscoAsa1000vDao = _ciscoAsa1000vDao; _element._networkAsa1000vMapDao = _networkAsa1000vMapDao; _element._clusterVsmMapDao = _clusterVsmMapDao; _element._vsmDeviceDao = _vsmDeviceDao; _element._vlanDao = _vlanDao; _element._entityMgr = _entityMgr; // Standard responses when(_networkModel.isProviderForNetwork(Provider.CiscoVnmc, 1L)).thenReturn(true); _element.configure("CiscoVnmcTestElement", Collections.<String, Object>emptyMap()); } @Test public void applyStaticNatsTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.StaticNat, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); StaticNat rule = mock(StaticNat.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestIpAddress()).thenReturn("1.2.3.4"); when(rule.isForRevoke()).thenReturn(false); List<StaticNat> rules = new ArrayList<StaticNat>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetStaticNatRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyStaticNats(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_5

Test Case Name: canHandleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- Original +++ Refactored @@ -NetworkModel networkModel = mock(NetworkModel.class); -// Standard responses -when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); +// Standard responses +networkModel = MockNetworkModel.createMockNetworkModel(Provider.NiciraNvp, NETWORK_ID, true); element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); @@ when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(false); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); // NVP provider does not provide Connectivity for this network assertFalse(element.canHandle(net, Service.Connectivity)); - when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); + when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); // Only service Connectivity is supported assertFalse(element.canHandle(net, Service.Dhcp)); @@
Original Test Code (click to expand)
@Before public void setUp() throws ConfigurationException { element.resourceMgr = mock(ResourceManager.class); element.networkManager = networkManager; element.ntwkSrvcDao = ntwkSrvcDao; element.networkModel = networkModel; element.agentMgr = agentManager; element.hostDao = hostDao; element.niciraNvpDao = niciraNvpDao; element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; element.vlanDao = vlanDao; element.ipAddrMgr = ipAddressManager; // Standard responses when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); } @Test public void canHandleTest() { final Network net = mock(Network.class); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(net.getId()).thenReturn(NETWORK_ID); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); // Golden path assertTrue(element.canHandle(net, Service.Connectivity)); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); // Only broadcastdomaintype lswitch is supported assertFalse(element.canHandle(net, Service.Connectivity)); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(false); // No nvp provider in the network assertFalse(element.canHandle(net, Service.Connectivity)); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(false); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); // NVP provider does not provide Connectivity for this network assertFalse(element.canHandle(net, Service.Connectivity)); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); // Only service Connectivity is supported assertFalse(element.canHandle(net, Service.Dhcp)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_6

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ when(network.getGuestType()).thenReturn(GuestType.Isolated); - when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); + networkModel = MockNetworkModel.createMockNetworkModel(Provider.NiciraNvp, NETWORK_ID, true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); @@ when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class);
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); } @Before public void setUp() throws ConfigurationException { element.resourceMgr = mock(ResourceManager.class); element.networkManager = networkManager; element.ntwkSrvcDao = ntwkSrvcDao; element.networkModel = networkModel; element.agentMgr = agentManager; element.hostDao = hostDao; element.niciraNvpDao = niciraNvpDao; element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; element.vlanDao = vlanDao; element.ipAddrMgr = ipAddressManager; // Standard responses when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_7

Test Case Name: implementSharedNetworkUuidVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- Original +++ Refactored @@ @Before public void setUp() throws ConfigurationException { - element.resourceMgr = mock(ResourceManager.class); - element.networkManager = networkManager; - element.ntwkSrvcDao = ntwkSrvcDao; - element.networkModel = networkModel; - element.agentMgr = agentManager; - element.hostDao = hostDao; - element.niciraNvpDao = niciraNvpDao; - element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; - element.vlanDao = vlanDao; - element.ipAddrMgr = ipAddressManager; - // Standard responses - when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); + element.resourceMgr = mock(ResourceManager.class); + element.networkManager = networkManager; + element.ntwkSrvcDao = ntwkSrvcDao; + networkModel = MockNetworkModel.createMockNetworkModel(Provider.NiciraNvp, NETWORK_ID, true); + element.networkModel = networkModel; + element.agentMgr = agentManager; + element.hostDao = hostDao; + element.niciraNvpDao = niciraNvpDao; + element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; + element.vlanDao = vlanDao; + element.ipAddrMgr = ipAddressManager; element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); } @@ when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); - when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); @@
Original Test Code (click to expand)
@Before public void setUp() throws ConfigurationException { element.resourceMgr = mock(ResourceManager.class); element.networkManager = networkManager; element.ntwkSrvcDao = ntwkSrvcDao; element.networkModel = networkModel; element.agentMgr = agentManager; element.hostDao = hostDao; element.niciraNvpDao = niciraNvpDao; element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; element.vlanDao = vlanDao; element.ipAddrMgr = ipAddressManager; // Standard responses when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); } @Test public void implementSharedNetworkUuidVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_8

Test Case Name: implementSharedNetworkNumericalVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- Original +++ Refactored @@ -NetworkModel networkModel = mock(NetworkModel.class); +NetworkModel networkModel = MockNetworkModel.createMockNetworkModel(Provider.NiciraNvp, NETWORK_ID, true); element.resourceMgr = mock(ResourceManager.class); element.networkManager = networkManager; element.ntwkSrvcDao = ntwkSrvcDao; element.networkModel = networkModel; element.agentMgr = agentManager; element.hostDao = hostDao; element.niciraNvpDao = niciraNvpDao; element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; element.vlanDao = vlanDao; element.ipAddrMgr = ipAddressManager; // Standard responses -when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); @@ when(network.getGuestType()).thenReturn(GuestType.Shared); - when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class);
Original Test Code (click to expand)
@Before public void setUp() throws ConfigurationException { element.resourceMgr = mock(ResourceManager.class); element.networkManager = networkManager; element.ntwkSrvcDao = ntwkSrvcDao; element.networkModel = networkModel; element.agentMgr = agentManager; element.hostDao = hostDao; element.niciraNvpDao = niciraNvpDao; element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; element.vlanDao = vlanDao; element.ipAddrMgr = ipAddressManager; // Standard responses when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); } @Test public void implementSharedNetworkNumericalVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn("bbbb-bbbb-bbbb"); final ConfigureSharedNetworkVlanIdAnswer answer = mock(ConfigureSharedNetworkVlanIdAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_9

Test Case Name: implementSharedNetworkNumericalVlanIdWithoutL2GatewayService(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- Original +++ Refactored @@ -NetworkModel networkModel = mock(NetworkModel.class); -// Standard responses -when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); +NetworkModel networkModel = MockNetworkModel.createMockNetworkModel(Provider.NiciraNvp, NETWORK_ID, true); element.resourceMgr = mock(ResourceManager.class); element.networkManager = networkManager; element.ntwkSrvcDao = ntwkSrvcDao; element.networkModel = networkModel; @@ - when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); + when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class);
Original Test Code (click to expand)
@Before public void setUp() throws ConfigurationException { element.resourceMgr = mock(ResourceManager.class); element.networkManager = networkManager; element.ntwkSrvcDao = ntwkSrvcDao; element.networkModel = networkModel; element.agentMgr = agentManager; element.hostDao = hostDao; element.niciraNvpDao = niciraNvpDao; element.niciraNvpRouterMappingDao = niciraNvpRouterMappingDao; element.vlanDao = vlanDao; element.ipAddrMgr = ipAddressManager; // Standard responses when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); element.configure("NiciraNvpTestElement", Collections.<String, Object>emptyMap()); } @Test(expected = CloudRuntimeException.class) public void implementSharedNetworkNumericalVlanIdWithoutL2GatewayService() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); element.implement(network, offering, dest, context); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_10

Test Case Name: testCanHandle(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\element\VirtualRouterElementTest.java)

Mock Object Variable Name: _networkMdl

Suggested Diff
--- original +++ refactored @@ when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); - when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); - when(virtualRouterElement._networkMdl.isProviderForNetwork(Network.Provider.VirtualRouter, networkId)).thenReturn(true); + virtualRouterElement._networkMdl = MockNetworkModel.createMockNetworkModel(Network.Provider.VirtualRouter, networkId, true); + when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); + when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); assertTrue(virtualRouterElement.canHandle(network, null)); @@
Original Test Code (click to expand)
/** * @param networks * @param offerings * @throws ConcurrentOperationException */ private void mockMgrs() throws ConcurrentOperationException { final Service service = Service.Connectivity; testNetwork.setState(Network.State.Implementing); testNetwork.setTrafficType(TrafficType.Guest); when(_networkMdl.isProviderEnabledInPhysicalNetwork(0L, "VirtualRouter")).thenReturn(true); when(_networkMdl.isProviderSupportServiceInNetwork(testNetwork.getId(), service, Network.Provider.VirtualRouter)).thenReturn(true); when(_networkMdl.isProviderForNetwork(Network.Provider.VirtualRouter, 0L)).thenReturn(true); when(testVMProfile.getType()).thenReturn(VirtualMachine.Type.User); when(testVMProfile.getHypervisorType()).thenReturn(HypervisorType.XenServer); final List<NetworkVO> networks = new ArrayList<NetworkVO>(1); networks.add(testNetwork); final List<NetworkOfferingVO> offerings = new ArrayList<NetworkOfferingVO>(1); offerings.add(testOffering); doReturn(offerings).when(_networkModel).getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork); doReturn(networks).when(_networkMgr).setupNetwork(any(Account.class), any(NetworkOffering.class), any(DeploymentPlan.class), any(String.class), any(String.class), anyBoolean()); // being anti-social and testing my own case first doReturn(HypervisorType.XenServer).when(_resourceMgr).getDefaultHypervisor(anyLong()); doReturn(new AccountVO()).when(_accountMgr).getAccount(testNetwork.getAccountId()); } @Test public void testCanHandle() { Network network = Mockito.mock(Network.class); final long networkId = 1; final long physicalNetworkId = 42; final long networkOfferingId = 10; final long dataCenterId = 33; when(network.getId()).thenReturn(networkId); lenient().when(network.getPhysicalNetworkId()).thenReturn(physicalNetworkId); lenient().when(network.getTrafficType()).thenReturn(TrafficType.Guest); lenient().when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); lenient().when(network.getDataCenterId()).thenReturn(dataCenterId); when(network.getVpcId()).thenReturn(null); when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); when(virtualRouterElement._networkMdl.isProviderForNetwork(Network.Provider.VirtualRouter, networkId)).thenReturn(true); assertTrue(virtualRouterElement.canHandle(network, null)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Test Case ID #cloudstack_Test_4_11

Test Case Name: testAddPasswordAndUserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\element\VirtualRouterElementTest.java)

Mock Object Variable Name: _networkMdl

Suggested Diff
@@ + // Cannot refactor this mock: The reusable helper only stubs isProviderForNetwork, but the test method does not call or stub isProviderForNetwork at all. All test-specific stubs are for isProviderEnabledInPhysicalNetwork, isProviderSupportServiceInNetwork, and getPhysicalNetworkId, which are not covered by the helper. Thus, using the helper would not eliminate any duplicated mock-creation or stubbing code. @@
Original Test Code (click to expand)
/** * @param networks * @param offerings * @throws ConcurrentOperationException */ private void mockMgrs() throws ConcurrentOperationException { final Service service = Service.Connectivity; testNetwork.setState(Network.State.Implementing); testNetwork.setTrafficType(TrafficType.Guest); when(_networkMdl.isProviderEnabledInPhysicalNetwork(0L, "VirtualRouter")).thenReturn(true); when(_networkMdl.isProviderSupportServiceInNetwork(testNetwork.getId(), service, Network.Provider.VirtualRouter)).thenReturn(true); when(_networkMdl.isProviderForNetwork(Network.Provider.VirtualRouter, 0L)).thenReturn(true); when(testVMProfile.getType()).thenReturn(VirtualMachine.Type.User); when(testVMProfile.getHypervisorType()).thenReturn(HypervisorType.XenServer); final List<NetworkVO> networks = new ArrayList<NetworkVO>(1); networks.add(testNetwork); final List<NetworkOfferingVO> offerings = new ArrayList<NetworkOfferingVO>(1); offerings.add(testOffering); doReturn(offerings).when(_networkModel).getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork); doReturn(networks).when(_networkMgr).setupNetwork(any(Account.class), any(NetworkOffering.class), any(DeploymentPlan.class), any(String.class), any(String.class), anyBoolean()); // being anti-social and testing my own case first doReturn(HypervisorType.XenServer).when(_resourceMgr).getDefaultHypervisor(anyLong()); doReturn(new AccountVO()).when(_accountMgr).getAccount(testNetwork.getAccountId()); } @Test public void testAddPasswordAndUserdata() throws Exception { Network network = Mockito.mock(Network.class); VirtualMachineProfile vm = Mockito.mock(VirtualMachineProfile.class); NicProfile nic = Mockito.mock(NicProfile.class); DeployDestination dest = Mockito.mock(DeployDestination.class); ReservationContext context = Mockito.mock(ReservationContext.class); Service service = Service.UserData; final long networkId = 1; final long physicalNetworkId = 42; final long networkOfferingId = 10; final long dataCenterId = 33; when(network.getId()).thenReturn(networkId); lenient().when(network.getPhysicalNetworkId()).thenReturn(physicalNetworkId); lenient().when(network.getTrafficType()).thenReturn(TrafficType.Guest); lenient().when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); lenient().when(network.getDataCenterId()).thenReturn(dataCenterId); when(network.getVpcId()).thenReturn(null); lenient().when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); when(virtualRouterElement._networkMdl.isProviderSupportServiceInNetwork(networkId, service, Network.Provider.VirtualRouter)).thenReturn(true); lenient().when(virtualRouterElement._dcDao.findById(dataCenterId)).thenReturn(Mockito.mock(DataCenterVO.class)); when(virtualRouterElement.canHandle(network, service)).thenReturn(false); assertTrue(virtualRouterElement.addPasswordAndUserdata(network, nic, vm, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { /** * Creates a mock NetworkModel and stubs isProviderForNetwork as specified. * * @param provider the Provider to check * @param networkId the network id * @param returnValue the boolean value to return from isProviderForNetwork * @return a configured mock NetworkModel */ public static NetworkModel createMockNetworkModel(Network.Provider provider, long networkId, boolean returnValue) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.isProviderForNetwork(provider, networkId)).thenReturn(returnValue); return networkModel; } }

Mock Clone Instance #cloudstack_MCI_5

Reusable Method

public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_5_1

Test Case Name: applyFWRulesWithAddIngressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- original +++ refactored @@ Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); Ip ip = mock(Ip.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(ipAddressDao.findById(anyLong())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); @@
Original Test Code (click to expand)
@Test public void applyFWRulesWithAddIngressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); Ip ip = mock(Ip.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findById(anyLong())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_2

Test Case Name: removePublicNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- original +++ refactored @@ VlanVO vlanVO = mock(VlanVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(removeTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(removeTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); assertTrue(tungstenService.removePublicNetworkSubnet(vlanVO)); verify(ipAddressDao, times(1)).unassignIpAddress(anyLong()); @@
Original Test Code (click to expand)
@Test public void removePublicNetworkSubnetTest() { VlanVO vlanVO = mock(VlanVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(removeTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(removeTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); assertTrue(tungstenService.removePublicNetworkSubnet(vlanVO)); verify(ipAddressDao, times(1)).unassignIpAddress(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_3

Test Case Name: applyFWRulesWithRevokeRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Revoke); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteNetworkPolicyAnswer); when(deleteNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); @@
Original Test Code (click to expand)
@Test public void applyFWRulesWithRevokeRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteNetworkPolicyAnswer); when(deleteNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_4

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- Original +++ Refactored @@ Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO);
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_5

Test Case Name: createPublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- Original +++ Refactored @@ Network publicNetwork = mock(Network.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer createPublicNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer createFloatingIpPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createPublicNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(createFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(createPublicNetworkAnswer.getResult()).thenReturn(true); when(createFloatingIpPoolAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(createPublicNetworkAnswer.getApiObjectBase()).thenReturn(virtualNetwork); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(virtualNetwork.getQualifiedName()).thenReturn(Arrays.asList("default-domain", "default-project", "publicNetwork")); assertTrue(tungstenService.createPublicNetwork(1L)); @@
Original Test Code (click to expand)
@Test public void createPublicNetworkTest() { Network publicNetwork = mock(Network.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer createPublicNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer createFloatingIpPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createPublicNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(createFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(createPublicNetworkAnswer.getResult()).thenReturn(true); when(createFloatingIpPoolAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(createPublicNetworkAnswer.getApiObjectBase()).thenReturn(virtualNetwork); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(virtualNetwork.getQualifiedName()).thenReturn(Arrays.asList("default-domain", "default-project", "publicNetwork")); assertTrue(tungstenService.createPublicNetwork(1L)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_6

Test Case Name: shutdownProviderInstancesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- original +++ refactored @@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); @@
Original Test Code (click to expand)
@Test public void shutdownProviderInstancesTest() throws ConcurrentOperationException { PhysicalNetworkServiceProvider physicalNetworkServiceProvider = mock(PhysicalNetworkServiceProvider.class); ReservationContext reservationContext = mock(ReservationContext.class); PhysicalNetworkVO physicalNetworkVO = mock(PhysicalNetworkVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_7

Test Case Name: addPublicNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ Network publicNetwork = mock(Network.class); TungstenAnswer addTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addTungstenNetworkSubnetAnswer);
Original Test Code (click to expand)
@Test public void addPublicNetworkSubnetTest() { VlanVO vlanVO = mock(VlanVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer addTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(vlanVO.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlanVO.getVlanGateway()).thenReturn("192.168.100.1"); when(vlanVO.getVlanNetmask()).thenReturn("255.255.255.0"); when(publicNetwork.getCidr()).thenReturn("192.168.100.0/24"); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); assertTrue(tungstenService.addPublicNetworkSubnet(vlanVO)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_8

Test Case Name: applyFWRulesWithAddEgressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- original +++ refactored @@ TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Egress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); @@
Original Test Code (click to expand)
@Test public void applyFWRulesWithAddEgressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Egress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_5_9

Test Case Name: deletePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
@@ @Test public void deletePublicNetworkTest() { Network publicNetwork = mock(Network.class); - TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); - TungstenAnswer deleteTungstenFloatingIpPoolAnswer = mock(TungstenAnswer.class); - TungstenAnswer deleteTungstenNetworkAnswer = mock(TungstenAnswer.class); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); + TungstenAnswer deleteTungstenFloatingIpPoolAnswer = mock(TungstenAnswer.class); + TungstenAnswer deleteTungstenNetworkAnswer = mock(TungstenAnswer.class); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(deleteTungstenFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong())).thenReturn(deleteTungstenNetworkAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(deleteTungstenFloatingIpPoolAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.deletePublicNetwork(1L)); }
Original Test Code (click to expand)
@Test public void deletePublicNetworkTest() { Network publicNetwork = mock(Network.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenFloatingIpPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkAnswer = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(deleteTungstenFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong())).thenReturn(deleteTungstenNetworkAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(deleteTungstenFloatingIpPoolAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.deletePublicNetwork(1L)); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network publicNetwork) { NetworkModel networkModel = mock(NetworkModel.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); return networkModel; } }

Mock Clone Instance #cloudstack_MCI_6

Reusable Method

public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_6_1

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- Original +++ Refactored @@ when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_2

Test Case Name: testImplementFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- Original +++ Refactored @@ when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); @@
Original Test Code (click to expand)
@Test public void testImplementFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_3

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- original +++ refactored @@ when(hostdao.findById(anyLong())).thenReturn(brocadeHost); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_4

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { - final NetworkVO network = mock(NetworkVO.class); - when(network.getName()).thenReturn("testnetwork"); - when(network.getState()).thenReturn(State.Implementing); - when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); - when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); - when(network.getDataCenterId()).thenReturn(NETWORK_ID); - final NicProfile nic = mock(NicProfile.class); - when(nic.getMacAddress()).thenReturn("macaddress"); - when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); - final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); - final DeployDestination dest = mock(DeployDestination.class); - final DataCenterVO dc = mock(DataCenterVO.class); - when(dest.getDataCenter()).thenReturn(dc); - when(dcdao.findById((long) anyInt())).thenReturn(dc); - final HostVO brocadeHost = mock(HostVO.class); - when(hostdao.findById(anyLong())).thenReturn(brocadeHost); - when(brocadeHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); } @@
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_5

Test Case Name: testDeallocate(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- original +++ refactored @@ when(brocadeHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); @@
Original Test Code (click to expand)
@Test public void testDeallocate() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.deallocate(network, nic, vmProfile); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_6

Test Case Name: testDeallocateFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); @@
Original Test Code (click to expand)
@Test public void testDeallocateFail() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.deallocate(network, nic, vmProfile); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_7

Test Case Name: testTrash(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
@@ when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsNetworkVlanMappingVO mapping = mock(BrocadeVcsNetworkVlanMappingVO.class);
Original Test Code (click to expand)
@Test public void testTrash() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsNetworkVlanMappingVO mapping = mock(BrocadeVcsNetworkVlanMappingVO.class); when(mapping.getVlanId()).thenReturn(14); when(vcsmapdao.findByNetworkId(anyLong())).thenReturn(mapping); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DeleteNetworkAnswer answer = mock(DeleteNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); when(vcsdao.remove((long) anyInt())).thenReturn(true); final boolean result = guru.trash(network, offering); assertTrue(result == true); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_8

Test Case Name: testTrashFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final BrocadeVcsNetworkVlanMappingVO mapping = mock(BrocadeVcsNetworkVlanMappingVO.class); when(mapping.getVlanId()).thenReturn(14); when(vcsmapdao.findByNetworkId(anyLong())).thenReturn(mapping); @@
Original Test Code (click to expand)
@Test public void testTrashFail() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsNetworkVlanMappingVO mapping = mock(BrocadeVcsNetworkVlanMappingVO.class); when(mapping.getVlanId()).thenReturn(14); when(vcsmapdao.findByNetworkId(anyLong())).thenReturn(mapping); when(vcsmapdao.remove(anyLong())).thenReturn(true); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final boolean result = guru.trash(network, offering); assertTrue(result == false); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_9

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
@@ when(niciraHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final Domain dom = mock(Domain.class);
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_10

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- Original +++ Refactored @@ when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_11

Test Case Name: testImplementURIException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
@@ when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID); final Domain dom = mock(Domain.class);
Original Test Code (click to expand)
@Test public void testImplementURIException() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_12

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- Original +++ Refactored @@ - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID);
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_13

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- Original +++ Refactored @@ PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); + netmodel = MockNetworkModel.createMockNetworkModel(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_14

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- original +++ refactored @@ DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); + netmodel = MockNetworkModel.createMockNetworkModel(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Test Case ID #cloudstack_Test_6_15

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
@@ when(dest.getDataCenter()).thenReturn(dc); - when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); + netmodel = MockNetworkModel.createMockNetworkModel(42L); Domain dom = mock(Domain.class);
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long findPhysicalNetworkIdReturn) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(findPhysicalNetworkIdReturn); return netmodel; } }

Mock Clone Instance #cloudstack_MCI_7

Reusable Method

public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long networkId, Service... services) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.listNetworkOfferingServices(networkId)).thenReturn(Arrays.asList(services)); return netmodel; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_7_1

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
@@ when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); - when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID, Service.Connectivity); final DeploymentPlan plan = mock(DeploymentPlan.class);
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vcs); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long networkId, Service... services) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.listNetworkOfferingServices(networkId)).thenReturn(Arrays.asList(services)); return netmodel; } }

Test Case ID #cloudstack_Test_7_2

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: netmodel

Suggested Diff
--- original +++ refactored @@ when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); - when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); + netmodel = MockNetworkModel.createMockNetworkModel(NETWORK_ID, Service.Connectivity); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch); @@
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(long networkId, Service... services) { NetworkModel netmodel = mock(NetworkModel.class); when(netmodel.listNetworkOfferingServices(networkId)).thenReturn(Arrays.asList(services)); return netmodel; } }

Mock Clone Instance #cloudstack_MCI_8

Reusable Method

public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network systemNetwork) { NetworkModel networkModel = Mockito.mock(NetworkModel.class); Mockito.when(networkModel.getSystemNetworkByZoneAndTrafficType(ArgumentMatchers.anyLong(), ArgumentMatchers.any())) .thenReturn(systemNetwork); return networkModel; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_8_1

Test Case Name: executeTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ConfigTungstenFabricServiceCmdTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
@@ Mockito.when(entityManager.findById(ArgumentMatchers.any(), ArgumentMatchers.anyLong())).thenReturn(dataCenter); Mockito.when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); - Mockito.when(networkModel.getSystemNetworkByZoneAndTrafficType(ArgumentMatchers.anyLong(), ArgumentMatchers.any())).thenReturn(managementNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(managementNetwork); Mockito.when(networkOfferingDao.listSystemNetworkOfferings()).thenReturn(systemNetworkOffering); PowerMockito.when(Transaction.execute(any(TransactionCallbackNoReturn.class))).thenReturn(transactionCallbackNoReturn); PowerMockito.whenNew(SuccessResponse.class).withAnyArguments().thenReturn(successResponse); configTungstenFabricServiceCmd.execute(); Assert.assertEquals(successResponse, configTungstenFabricServiceCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeTest() throws Exception { SuccessResponse successResponse = Mockito.mock(SuccessResponse.class); DataCenter dataCenter = Mockito.mock(DataCenter.class); Network managementNetwork = Mockito.mock(Network.class); TransactionCallbackNoReturn transactionCallbackNoReturn = Mockito.mock(TransactionCallbackNoReturn.class); List<NetworkOfferingVO> systemNetworkOffering = Arrays.asList(Mockito.mock(NetworkOfferingVO.class)); mockStatic(Transaction.class); Mockito.when(entityManager.findById(ArgumentMatchers.any(), ArgumentMatchers.anyLong())).thenReturn(dataCenter); Mockito.when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); Mockito.when(networkModel.getSystemNetworkByZoneAndTrafficType(ArgumentMatchers.anyLong(), ArgumentMatchers.any())).thenReturn(managementNetwork); Mockito.when(networkOfferingDao.listSystemNetworkOfferings()).thenReturn(systemNetworkOffering); PowerMockito.when(Transaction.execute(any(TransactionCallbackNoReturn.class))).thenReturn(transactionCallbackNoReturn); PowerMockito.whenNew(SuccessResponse.class).withAnyArguments().thenReturn(successResponse); configTungstenFabricServiceCmd.execute(); Assert.assertEquals(successResponse, configTungstenFabricServiceCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network systemNetwork) { NetworkModel networkModel = Mockito.mock(NetworkModel.class); Mockito.when(networkModel.getSystemNetworkByZoneAndTrafficType(ArgumentMatchers.anyLong(), ArgumentMatchers.any())) .thenReturn(systemNetwork); return networkModel; } }

Test Case ID #cloudstack_Test_8_2

Test Case Name: executeTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\CreateTungstenFabricPublicNetworkCmdTest.java)

Mock Object Variable Name: networkModel

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Test public void executeTest() throws Exception { SuccessResponse successResponse = Mockito.mock(SuccessResponse.class); Network publicNetwork = Mockito.mock(Network.class); SearchCriteria<VlanVO> sc = Mockito.mock(SearchCriteria.class); List<VlanVO> pubVlanVOList = Arrays.asList(Mockito.mock(VlanVO.class)); - Mockito.when(networkModel.getSystemNetworkByZoneAndTrafficType(ArgumentMatchers.anyLong(), ArgumentMatchers.any())).thenReturn(publicNetwork); + networkModel = MockNetworkModel.createMockNetworkModel(publicNetwork); Mockito.when(vlanDao.createSearchCriteria()).thenReturn(sc); Mockito.when(vlanDao.listVlansByNetworkId(ArgumentMatchers.anyLong())).thenReturn(pubVlanVOList); Mockito.when(tungstenService.createPublicNetwork(ArgumentMatchers.anyLong())).thenReturn(true); Mockito.when(tungstenService.addPublicNetworkSubnet(ArgumentMatchers.any())).thenReturn(true); PowerMockito.whenNew(SuccessResponse.class).withAnyArguments().thenReturn(successResponse); createTungstenFabricPublicNetworkCmd.execute(); Assert.assertEquals(successResponse, createTungstenFabricPublicNetworkCmd.getResponseObject()); } @@
Original Test Code (click to expand)
@Test public void executeTest() throws Exception { SuccessResponse successResponse = Mockito.mock(SuccessResponse.class); Network publicNetwork = Mockito.mock(Network.class); SearchCriteria<VlanVO> sc = Mockito.mock(SearchCriteria.class); List<VlanVO> pubVlanVOList = Arrays.asList(Mockito.mock(VlanVO.class)); Mockito.when(networkModel.getSystemNetworkByZoneAndTrafficType(ArgumentMatchers.anyLong(), ArgumentMatchers.any())).thenReturn(publicNetwork); Mockito.when(vlanDao.createSearchCriteria()).thenReturn(sc); Mockito.when(vlanDao.listVlansByNetworkId(ArgumentMatchers.anyLong())).thenReturn(pubVlanVOList); Mockito.when(tungstenService.createPublicNetwork(ArgumentMatchers.anyLong())).thenReturn(true); Mockito.when(tungstenService.addPublicNetworkSubnet(ArgumentMatchers.any())).thenReturn(true); PowerMockito.whenNew(SuccessResponse.class).withAnyArguments().thenReturn(successResponse); createTungstenFabricPublicNetworkCmd.execute(); Assert.assertEquals(successResponse, createTungstenFabricPublicNetworkCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockNetworkModel { public static NetworkModel createMockNetworkModel(Network systemNetwork) { NetworkModel networkModel = Mockito.mock(NetworkModel.class); Mockito.when(networkModel.getSystemNetworkByZoneAndTrafficType(ArgumentMatchers.anyLong(), ArgumentMatchers.any())) .thenReturn(systemNetwork); return networkModel; } }

Mock Clone Instance #cloudstack_MCI_9

Reusable Method

private static VirtualMachineTemplate createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy overridePolicy) { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(overridePolicy); return template; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_9_1

Test Case Name: testUserDataDenyOverride(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: template

Suggested Diff
@@ Long userDataId = 1L; - VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); - when(template.getUserDataId()).thenReturn(2L); - when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.DENYOVERRIDE); + VirtualMachineTemplate template = createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy.DENYOVERRIDE); userVmManagerImpl.finalizeUserData(null, userDataId, template); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testUserDataDenyOverride() { Long userDataId = 1L; VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.DENYOVERRIDE); userVmManagerImpl.finalizeUserData(null, userDataId, template); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTemplate createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy overridePolicy) { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(overridePolicy); return template; }

Test Case ID #cloudstack_Test_9_2

Test Case Name: testUserDataAllowOverride(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: template

Suggested Diff
@@ String templateUserData = "testTemplateUserdata"; Long userDataId = 1L; - VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); - when(template.getUserDataId()).thenReturn(2L); - when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + VirtualMachineTemplate template = createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); doReturn(apiUserDataVO).when(userDataDao).findById(userDataId); when(apiUserDataVO.getUserData()).thenReturn(templateUserData); String finalUserdata = userVmManagerImpl.finalizeUserData(null, userDataId, template); Assert.assertEquals(finalUserdata, templateUserData); @@
Original Test Code (click to expand)
@Test public void testUserDataAllowOverride() { String templateUserData = "testTemplateUserdata"; Long userDataId = 1L; VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); doReturn(apiUserDataVO).when(userDataDao).findById(userDataId); when(apiUserDataVO.getUserData()).thenReturn(templateUserData); String finalUserdata = userVmManagerImpl.finalizeUserData(null, userDataId, template); Assert.assertEquals(finalUserdata, templateUserData); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTemplate createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy overridePolicy) { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(overridePolicy); return template; }

Test Case ID #cloudstack_Test_9_3

Test Case Name: testUserDataAppend(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: template

Suggested Diff
--- original +++ refactored @@ String userData = "testUserdata"; String templateUserData = "testTemplateUserdata"; Long userDataId = 1L; - VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); - when(template.getUserDataId()).thenReturn(2L); - when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.APPEND); + VirtualMachineTemplate template = createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy.APPEND); UserDataVO templateUserDataVO = Mockito.mock(UserDataVO.class); doReturn(templateUserDataVO).when(userDataDao).findById(2L); when(templateUserDataVO.getUserData()).thenReturn(templateUserData); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); doReturn(apiUserDataVO).when(userDataDao).findById(userDataId); when(apiUserDataVO.getUserData()).thenReturn(userData); String finalUserdata = userVmManagerImpl.finalizeUserData(null, userDataId, template); Assert.assertEquals(finalUserdata, templateUserData + userData); @@
Original Test Code (click to expand)
@Test public void testUserDataAppend() { String userData = "testUserdata"; String templateUserData = "testTemplateUserdata"; Long userDataId = 1L; VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.APPEND); UserDataVO templateUserDataVO = Mockito.mock(UserDataVO.class); doReturn(templateUserDataVO).when(userDataDao).findById(2L); when(templateUserDataVO.getUserData()).thenReturn(templateUserData); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); doReturn(apiUserDataVO).when(userDataDao).findById(userDataId); when(apiUserDataVO.getUserData()).thenReturn(userData); String finalUserdata = userVmManagerImpl.finalizeUserData(null, userDataId, template); Assert.assertEquals(finalUserdata, templateUserData + userData); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTemplate createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy overridePolicy) { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(overridePolicy); return template; }

Test Case ID #cloudstack_Test_9_4

Test Case Name: testUserDataAllowOverrideWithoutAPIuserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: template

Suggested Diff
--- original +++ refactored @@ String templateUserData = "testTemplateUserdata"; - VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); - when(template.getUserDataId()).thenReturn(2L); - when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + VirtualMachineTemplate template = createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); UserDataVO templateUserDataVO = Mockito.mock(UserDataVO.class); doReturn(templateUserDataVO).when(userDataDao).findById(2L); when(templateUserDataVO.getUserData()).thenReturn(templateUserData); String finalUserdata = userVmManagerImpl.finalizeUserData(null, null, template); Assert.assertEquals(finalUserdata, templateUserData); @@
Original Test Code (click to expand)
@Test public void testUserDataAllowOverrideWithoutAPIuserdata() { String templateUserData = "testTemplateUserdata"; VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); UserDataVO templateUserDataVO = Mockito.mock(UserDataVO.class); doReturn(templateUserDataVO).when(userDataDao).findById(2L); when(templateUserDataVO.getUserData()).thenReturn(templateUserData); String finalUserdata = userVmManagerImpl.finalizeUserData(null, null, template); Assert.assertEquals(finalUserdata, templateUserData); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTemplate createMockVirtualMachineTemplate(UserData.UserDataOverridePolicy overridePolicy) { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(2L); when(template.getUserDataOverridePolicy()).thenReturn(overridePolicy); return template; }

Mock Clone Instance #cloudstack_MCI_10

Reusable Method

private static VirtualMachineTemplate createMockVirtualMachineTemplate() { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(null); return template; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_10_1

Test Case Name: testUserDataWithoutTemplate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: template

Suggested Diff
@@ when(apiUserDataVO.getUserData()).thenReturn(userData); - VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); - when(template.getUserDataId()).thenReturn(null); + VirtualMachineTemplate template = createMockVirtualMachineTemplate(); String finalUserdata = userVmManagerImpl.finalizeUserData(null, userDataId, template); Assert.assertEquals(finalUserdata, userData); }
Original Test Code (click to expand)
@Test public void testUserDataWithoutTemplate() { String userData = "testUserdata"; Long userDataId = 1L; UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); doReturn(apiUserDataVO).when(userDataDao).findById(userDataId); when(apiUserDataVO.getUserData()).thenReturn(userData); VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(null); String finalUserdata = userVmManagerImpl.finalizeUserData(null, userDataId, template); Assert.assertEquals(finalUserdata, userData); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTemplate createMockVirtualMachineTemplate() { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(null); return template; }

Test Case ID #cloudstack_Test_10_2

Test Case Name: testUserDataAllowOverrideWithUserdataText(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: template

Suggested Diff
--- original +++ refactored @@ String userData = "testUserdata"; - VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); - when(template.getUserDataId()).thenReturn(null); + VirtualMachineTemplate template = createMockVirtualMachineTemplate(); String finalUserdata = userVmManagerImpl.finalizeUserData(userData, null, template); Assert.assertEquals(finalUserdata, userData); @@
Original Test Code (click to expand)
@Test public void testUserDataAllowOverrideWithUserdataText() { String userData = "testUserdata"; VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(null); String finalUserdata = userVmManagerImpl.finalizeUserData(userData, null, template); Assert.assertEquals(finalUserdata, userData); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTemplate createMockVirtualMachineTemplate() { VirtualMachineTemplate template = Mockito.mock(VirtualMachineTemplate.class); when(template.getUserDataId()).thenReturn(null); return template; }

Mock Clone Instance #cloudstack_MCI_11

Reusable Method

private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_11_1

Test Case Name: moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: aclRuleBeingMovedMock

Suggested Diff
@@ Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); - Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); - Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); + aclRuleBeingMovedMock = createMockNetworkACLItemVO(50); + Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(1l); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclItemDaoMock, times(0)).updateNumberFieldNetworkItem(aclRuleBeingMovedMock.getId(), 11); Mockito.verify(networkAclItemDaoMock, times(0)).findById(1l); Mockito.verify(networkAclServiceImpl, Mockito.times(1)).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.eq(11), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(1)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_2

Test Case Name: updateAclRuleToNewPositionAndExecuteShiftIfNecessaryTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: nextAclRuleMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); - Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); - Mockito.when(nextAclRuleMock.getId()).thenReturn(50l); + nextAclRuleMock = createMockNetworkACLItemVO(11); + Mockito.when(nextAclRuleMock.getId()).thenReturn(50l); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void updateAclRuleToNewPositionAndExecuteShiftIfNecessaryTest() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(nextAclRuleMock.getId()).thenReturn(50l); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); networkACLItemVO12.id = 12; NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.id = 13; networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); networkACLItemVO14.id = 14; allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(null).when(networkAclItemDaoMock).findById(Mockito.anyLong()); networkAclServiceImpl.updateAclRuleToNewPositionAndExecuteShiftIfNecessary(aclRuleBeingMovedMock, 11, allAclRules, 1); Mockito.verify(aclRuleBeingMovedMock).setNumber(11); Mockito.verify(nextAclRuleMock).setNumber(12); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(1l, 11); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(50l, 12); Assert.assertEquals(13, networkACLItemVO12.getNumber()); Assert.assertEquals(14, networkACLItemVO13.getNumber()); Assert.assertEquals(15, networkACLItemVO14.getNumber()); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_3

Test Case Name: moveRuleBetweenAclRulesTestThereIsNoSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: aclRuleBeingMovedMock

Suggested Diff
--- Original +++ Refactored @@ Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); - Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); + aclRuleBeingMovedMock = createMockNetworkACLItemVO(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void moveRuleBetweenAclRulesTestThereIsNoSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(1l); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(aclRuleBeingMovedMock.getId(), 11); Mockito.verify(networkAclItemDaoMock).findById(1l); Mockito.verify(networkAclServiceImpl, Mockito.times(0)).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_4

Test Case Name: updateAclRuleToNewPositionAndExecuteShiftIfNecessaryTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: aclRuleBeingMovedMock

Suggested Diff
--- Original +++ Refactored @@ Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(nextAclRuleMock.getId()).thenReturn(50l); - Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); + aclRuleBeingMovedMock = createMockNetworkACLItemVO(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); networkACLItemVO12.id = 12; NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.id = 13; networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); networkACLItemVO14.id = 14; allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(null).when(networkAclItemDaoMock).findById(Mockito.anyLong()); networkAclServiceImpl.updateAclRuleToNewPositionAndExecuteShiftIfNecessary(aclRuleBeingMovedMock, 11, allAclRules, 1); Mockito.verify(aclRuleBeingMovedMock).setNumber(11); Mockito.verify(nextAclRuleMock).setNumber(12); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(1l, 11); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(50l, 12); Assert.assertEquals(13, networkACLItemVO12.getNumber()); Assert.assertEquals(14, networkACLItemVO13.getNumber()); Assert.assertEquals(15, networkACLItemVO14.getNumber()); } @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void updateAclRuleToNewPositionAndExecuteShiftIfNecessaryTest() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(nextAclRuleMock.getId()).thenReturn(50l); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); networkACLItemVO12.id = 12; NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.id = 13; networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); networkACLItemVO14.id = 14; allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(null).when(networkAclItemDaoMock).findById(Mockito.anyLong()); networkAclServiceImpl.updateAclRuleToNewPositionAndExecuteShiftIfNecessary(aclRuleBeingMovedMock, 11, allAclRules, 1); Mockito.verify(aclRuleBeingMovedMock).setNumber(11); Mockito.verify(nextAclRuleMock).setNumber(12); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(1l, 11); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(50l, 12); Assert.assertEquals(13, networkACLItemVO12.getNumber()); Assert.assertEquals(14, networkACLItemVO13.getNumber()); Assert.assertEquals(15, networkACLItemVO14.getNumber()); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_5

Test Case Name: moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRuleWithOtherruleColliding(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: previousAclRuleMock

Suggested Diff
--- original +++ refactored @@ @Test(expected = InvalidParameterValueException.class) public void moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRuleWithOtherruleColliding() { - Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); + previousAclRuleMock = createMockNetworkACLItemVO(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO1 = new NetworkACLItemVO(); networkACLItemVO1.setNumber(11); allAclRules.add(previousAclRuleMock); allAclRules.add(networkACLItemVO1); allAclRules.add(nextAclRuleMock); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRuleWithOtherruleColliding() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO1 = new NetworkACLItemVO(); networkACLItemVO1.setNumber(11); allAclRules.add(previousAclRuleMock); allAclRules.add(networkACLItemVO1); allAclRules.add(nextAclRuleMock); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); } private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_6

Test Case Name: moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: previousAclRuleMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Test public void moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { - Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); + previousAclRuleMock = createMockNetworkACLItemVO(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11);
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(1l); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclItemDaoMock, times(0)).updateNumberFieldNetworkItem(aclRuleBeingMovedMock.getId(), 11); Mockito.verify(networkAclItemDaoMock, times(0)).findById(1l); Mockito.verify(networkAclServiceImpl, Mockito.times(1)).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.eq(11), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(1)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_7

Test Case Name: moveRuleBetweenAclRulesTestThereIsNoSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: previousAclRuleMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Test public void moveRuleBetweenAclRulesTestThereIsNoSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { - Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); + previousAclRuleMock = createMockNetworkACLItemVO(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l);
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void moveRuleBetweenAclRulesTestThereIsNoSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(1l); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(aclRuleBeingMovedMock.getId(), 11); Mockito.verify(networkAclItemDaoMock).findById(1l); Mockito.verify(networkAclServiceImpl, Mockito.times(0)).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_8

Test Case Name: updateAclRuleToNewPositionAndExecuteShiftIfNecessaryTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: previousAclRuleMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Test public void updateAclRuleToNewPositionAndExecuteShiftIfNecessaryTest() { - Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); + previousAclRuleMock = createMockNetworkACLItemVO(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(nextAclRuleMock.getId()).thenReturn(50l); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); networkACLItemVO12.id = 12; NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.id = 13; networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); networkACLItemVO14.id = 14; allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(null).when(networkAclItemDaoMock).findById(Mockito.anyLong()); networkAclServiceImpl.updateAclRuleToNewPositionAndExecuteShiftIfNecessary(aclRuleBeingMovedMock, 11, allAclRules, 1); Mockito.verify(aclRuleBeingMovedMock).setNumber(11); Mockito.verify(nextAclRuleMock).setNumber(12); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(1l, 11); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(50l, 12); Assert.assertEquals(13, networkACLItemVO12.getNumber()); Assert.assertEquals(14, networkACLItemVO13.getNumber()); Assert.assertEquals(15, networkACLItemVO14.getNumber()); } @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void updateAclRuleToNewPositionAndExecuteShiftIfNecessaryTest() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(nextAclRuleMock.getId()).thenReturn(50l); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); networkACLItemVO12.id = 12; NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.id = 13; networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); networkACLItemVO14.id = 14; allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(null).when(networkAclItemDaoMock).findById(Mockito.anyLong()); networkAclServiceImpl.updateAclRuleToNewPositionAndExecuteShiftIfNecessary(aclRuleBeingMovedMock, 11, allAclRules, 1); Mockito.verify(aclRuleBeingMovedMock).setNumber(11); Mockito.verify(nextAclRuleMock).setNumber(12); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(1l, 11); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(50l, 12); Assert.assertEquals(13, networkACLItemVO12.getNumber()); Assert.assertEquals(14, networkACLItemVO13.getNumber()); Assert.assertEquals(15, networkACLItemVO14.getNumber()); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_9

Test Case Name: moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRuleWithOtherruleColliding(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: nextAclRuleMock

Suggested Diff
--- Original +++ Refactored @@ Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); - Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); + nextAclRuleMock = createMockNetworkACLItemVO(15); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO1 = new NetworkACLItemVO(); networkACLItemVO1.setNumber(11); allAclRules.add(previousAclRuleMock); allAclRules.add(networkACLItemVO1); allAclRules.add(nextAclRuleMock); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRuleWithOtherruleColliding() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO1 = new NetworkACLItemVO(); networkACLItemVO1.setNumber(11); allAclRules.add(previousAclRuleMock); allAclRules.add(networkACLItemVO1); allAclRules.add(nextAclRuleMock); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); } private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_10

Test Case Name: moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: nextAclRuleMock

Suggested Diff
--- Original +++ Refactored @@ Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); - Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); + nextAclRuleMock = createMockNetworkACLItemVO(11); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void moveRuleBetweenAclRulesTestThereIsSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(11); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO12 = new NetworkACLItemVO(); networkACLItemVO12.setNumber(12); NetworkACLItemVO networkACLItemVO13 = new NetworkACLItemVO(); networkACLItemVO13.setNumber(13); NetworkACLItemVO networkACLItemVO14 = new NetworkACLItemVO(); networkACLItemVO14.setNumber(14); allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(networkACLItemVO12); allAclRules.add(networkACLItemVO13); allAclRules.add(networkACLItemVO14); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(1l); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclItemDaoMock, times(0)).updateNumberFieldNetworkItem(aclRuleBeingMovedMock.getId(), 11); Mockito.verify(networkAclItemDaoMock, times(0)).findById(1l); Mockito.verify(networkAclServiceImpl, Mockito.times(1)).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.eq(11), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(1)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Test Case ID #cloudstack_Test_11_11

Test Case Name: moveRuleBetweenAclRulesTestThereIsNoSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: nextAclRuleMock

Suggested Diff
--- Original +++ Refactored @@ Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); - Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); + nextAclRuleMock = createMockNetworkACLItemVO(15); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(aclRuleBeingMovedMock); @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void moveRuleBetweenAclRulesTestThereIsNoSpaceBetweenPreviousRuleAndNextRuleToAccomodateTheNewRule() { Mockito.when(previousAclRuleMock.getNumber()).thenReturn(10); Mockito.when(nextAclRuleMock.getNumber()).thenReturn(15); Mockito.when(aclRuleBeingMovedMock.getNumber()).thenReturn(50); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(1l); ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); allAclRules.add(previousAclRuleMock); allAclRules.add(nextAclRuleMock); allAclRules.add(aclRuleBeingMovedMock); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(1l); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); networkAclServiceImpl.moveRuleBetweenAclRules(aclRuleBeingMovedMock, allAclRules, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(aclRuleBeingMovedMock.getId(), 11); Mockito.verify(networkAclItemDaoMock).findById(1l); Mockito.verify(networkAclServiceImpl, Mockito.times(0)).updateAclRuleToNewPositionAndExecuteShiftIfNecessary(Mockito.any(NetworkACLItemVO.class), Mockito.anyInt(), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.anyInt()); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(int numberReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getNumber()).thenReturn(numberReturn); return mock; }

Mock Clone Instance #cloudstack_MCI_12

Reusable Method

private static NetworkACLItemVO createMockNetworkAclItemVo(long id) { NetworkACLItemVO networkAclItemVoMock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(networkAclItemVoMock.getId()).thenReturn(id); return networkAclItemVoMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_12_1

Test Case Name: transferDataToNetworkAclRulePojoTestNumberOfAcltoBeUpdatedAlreadyInUse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: networkAclItemVoMock

Suggested Diff
@@ Mockito.when(networkAclMock.getId()).thenReturn(networkAclMockId); - Mockito.when(networkAclItemVoMock.getId()).thenReturn(100L); + networkAclItemVoMock = createMockNetworkAclItemVo(100L); NetworkACLItemVO otherNetworkAclItemVoMock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(otherNetworkAclItemVoMock.getId()).thenReturn(101L); Mockito.doReturn(otherNetworkAclItemVoMock).when(networkAclItemDaoMock).findByAclAndNumber(networkAclMockId, aclNumberToUpdate); networkAclServiceImpl.transferDataToNetworkAclRulePojo(updateNetworkACLItemCmdMock, networkAclItemVoMock, networkAclMock);
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void transferDataToNetworkAclRulePojoTestNumberOfAcltoBeUpdatedAlreadyInUse() { int aclNumberToUpdate = 1; Mockito.when(updateNetworkACLItemCmdMock.getNumber()).thenReturn(aclNumberToUpdate); Mockito.when(networkAclMock.getId()).thenReturn(networkAclMockId); Mockito.when(networkAclItemVoMock.getId()).thenReturn(100L); NetworkACLItemVO otherNetworkAclItemVoMock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(otherNetworkAclItemVoMock.getId()).thenReturn(101L); Mockito.doReturn(otherNetworkAclItemVoMock).when(networkAclItemDaoMock).findByAclAndNumber(networkAclMockId, aclNumberToUpdate); networkAclServiceImpl.transferDataToNetworkAclRulePojo(updateNetworkACLItemCmdMock, networkAclItemVoMock, networkAclMock); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkAclItemVo(long id) { NetworkACLItemVO networkAclItemVoMock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(networkAclItemVoMock.getId()).thenReturn(id); return networkAclItemVoMock; }

Test Case ID #cloudstack_Test_12_2

Test Case Name: moveRuleToTheBottomTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: aclRuleBeingMovedMock

Suggested Diff
--- Original +++ Refactored @@ allAclRules.add(networkACLItemVO1); - Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(99l); + aclRuleBeingMovedMock = createMockNetworkAclItemVo(99l); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(99l); networkAclServiceImpl.moveRuleToTheBottom(aclRuleBeingMovedMock, allAclRules); Mockito.verify(aclRuleBeingMovedMock).setNumber(101); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(99l, 101); Mockito.verify(networkAclItemDaoMock).findById(99l); @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test public void moveRuleToTheBottomTest() { ArrayList<NetworkACLItemVO> allAclRules = new ArrayList<>(); NetworkACLItemVO networkACLItemVO1 = new NetworkACLItemVO(); networkACLItemVO1.setNumber(100); allAclRules.add(networkACLItemVO1); Mockito.when(aclRuleBeingMovedMock.getId()).thenReturn(99l); Mockito.doNothing().when(networkAclItemDaoMock).updateNumberFieldNetworkItem(Mockito.anyLong(), Mockito.anyInt()); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclItemDaoMock).findById(99l); networkAclServiceImpl.moveRuleToTheBottom(aclRuleBeingMovedMock, allAclRules); Mockito.verify(aclRuleBeingMovedMock).setNumber(101); Mockito.verify(networkAclItemDaoMock).updateNumberFieldNetworkItem(99l, 101); Mockito.verify(networkAclItemDaoMock).findById(99l); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkAclItemVo(long id) { NetworkACLItemVO networkAclItemVoMock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(networkAclItemVoMock.getId()).thenReturn(id); return networkAclItemVoMock; }

Mock Clone Instance #cloudstack_MCI_13

Reusable Method

private static NetworkACLItemVO createMockNetworkACLItemVO(Long aclId) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclId); return mock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_13_1

Test Case Name: validateMoveAclRulesDataTestSuccesfullExecution(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: previousAclRuleMock

Suggested Diff
@@ Mockito.when(nextAclRuleMock.getAclId()).thenReturn(networkAclMockId); - Mockito.when(previousAclRuleMock.getAclId()).thenReturn(networkAclMockId); + previousAclRuleMock = createMockNetworkACLItemVO(networkAclMockId); Mockito.doReturn(networkAclMock).when(networkAclDaoMock).findById(networkAclMockId);
Original Test Code (click to expand)
@Test public void validateMoveAclRulesDataTestSuccesfullExecution() { Mockito.when(nextAclRuleMock.getAclId()).thenReturn(networkAclMockId); Mockito.when(previousAclRuleMock.getAclId()).thenReturn(networkAclMockId); Mockito.doReturn(networkAclMock).when(networkAclDaoMock).findById(networkAclMockId); Mockito.doReturn(Mockito.mock(Vpc.class)).when(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doNothing().when(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclDaoMock).findById(networkAclMockId); Mockito.verify(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.verify(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); } private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(Long aclId) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclId); return mock; }

Test Case ID #cloudstack_Test_13_2

Test Case Name: updateNetworkACLItemTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: networkAclItemVoMock

Suggested Diff
@@ @Test public void updateNetworkACLItemTest() throws ResourceUnavailableException { - Mockito.when(networkAclItemVoMock.getAclId()).thenReturn(networkAclMockId); + networkAclItemVoMock = createMockNetworkACLItemVO(networkAclMockId); Mockito.doReturn(networkAclItemVoMock).when(networkAclServiceImpl).validateNetworkAclRuleIdAndRetrieveIt(updateNetworkACLItemCmdMock); Mockito.doReturn(networkAclMock).when(networkAclManagerMock).getNetworkACL(networkAclMockId); Mockito.doNothing().when(networkAclServiceImpl).validateNetworkAcl(Mockito.eq(networkAclMock)); Mockito.doNothing().when(networkAclServiceImpl).transferDataToNetworkAclRulePojo(Mockito.eq(updateNetworkACLItemCmdMock), Mockito.eq(networkAclItemVoMock), Mockito.eq(networkAclMock)); Mockito.doNothing().when(networkAclServiceImpl).validateNetworkACLItem(networkAclItemVoMock); Mockito.doReturn(networkAclItemVoMock).when(networkAclManagerMock).updateNetworkACLItem(networkAclItemVoMock); networkAclServiceImpl.updateNetworkACLItem(updateNetworkACLItemCmdMock); InOrder inOrder = Mockito.inOrder(networkAclServiceImpl, networkAclManagerMock); inOrder.verify(networkAclServiceImpl).validateNetworkAclRuleIdAndRetrieveIt(updateNetworkACLItemCmdMock); inOrder.verify(networkAclManagerMock).getNetworkACL(networkAclMockId); inOrder.verify(networkAclServiceImpl).validateNetworkAcl(networkAclMock); inOrder.verify(networkAclServiceImpl).transferDataToNetworkAclRulePojo(Mockito.eq(updateNetworkACLItemCmdMock), Mockito.eq(networkAclItemVoMock), Mockito.eq(networkAclMock)); inOrder.verify(networkAclServiceImpl).validateNetworkACLItem(networkAclItemVoMock); inOrder.verify(networkAclManagerMock).updateNetworkACLItem(networkAclItemVoMock); } @@
Original Test Code (click to expand)
@Test public void updateNetworkACLItemTest() throws ResourceUnavailableException { Mockito.when(networkAclItemVoMock.getAclId()).thenReturn(networkAclMockId); Mockito.doReturn(networkAclItemVoMock).when(networkAclServiceImpl).validateNetworkAclRuleIdAndRetrieveIt(updateNetworkACLItemCmdMock); Mockito.doReturn(networkAclMock).when(networkAclManagerMock).getNetworkACL(networkAclMockId); Mockito.doNothing().when(networkAclServiceImpl).validateNetworkAcl(Mockito.eq(networkAclMock)); Mockito.doNothing().when(networkAclServiceImpl).transferDataToNetworkAclRulePojo(Mockito.eq(updateNetworkACLItemCmdMock), Mockito.eq(networkAclItemVoMock), Mockito.eq(networkAclMock)); Mockito.doNothing().when(networkAclServiceImpl).validateNetworkACLItem(networkAclItemVoMock); Mockito.doReturn(networkAclItemVoMock).when(networkAclManagerMock).updateNetworkACLItem(networkAclItemVoMock); networkAclServiceImpl.updateNetworkACLItem(updateNetworkACLItemCmdMock); InOrder inOrder = Mockito.inOrder(networkAclServiceImpl, networkAclManagerMock); inOrder.verify(networkAclServiceImpl).validateNetworkAclRuleIdAndRetrieveIt(updateNetworkACLItemCmdMock); inOrder.verify(networkAclManagerMock).getNetworkACL(networkAclMockId); inOrder.verify(networkAclServiceImpl).validateNetworkAcl(networkAclMock); inOrder.verify(networkAclServiceImpl).transferDataToNetworkAclRulePojo(Mockito.eq(updateNetworkACLItemCmdMock), Mockito.eq(networkAclItemVoMock), Mockito.eq(networkAclMock)); inOrder.verify(networkAclServiceImpl).validateNetworkACLItem(networkAclItemVoMock); inOrder.verify(networkAclManagerMock).updateNetworkACLItem(networkAclItemVoMock); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(Long aclId) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclId); return mock; }

Test Case ID #cloudstack_Test_13_3

Test Case Name: validateMoveAclRulesDataTestSuccesfullExecution(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: nextAclRuleMock

Suggested Diff
--- Original +++ Refactored @@ @Test public void validateMoveAclRulesDataTestSuccesfullExecution() { - Mockito.when(nextAclRuleMock.getAclId()).thenReturn(networkAclMockId); + nextAclRuleMock = createMockNetworkACLItemVO(networkAclMockId); Mockito.when(previousAclRuleMock.getAclId()).thenReturn(networkAclMockId); Mockito.doReturn(networkAclMock).when(networkAclDaoMock).findById(networkAclMockId); Mockito.doReturn(Mockito.mock(Vpc.class)).when(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doNothing().when(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclDaoMock).findById(networkAclMockId); Mockito.verify(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.verify(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); } @@
Original Test Code (click to expand)
@Test public void validateMoveAclRulesDataTestSuccesfullExecution() { Mockito.when(nextAclRuleMock.getAclId()).thenReturn(networkAclMockId); Mockito.when(previousAclRuleMock.getAclId()).thenReturn(networkAclMockId); Mockito.doReturn(networkAclMock).when(networkAclDaoMock).findById(networkAclMockId); Mockito.doReturn(Mockito.mock(Vpc.class)).when(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doNothing().when(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclDaoMock).findById(networkAclMockId); Mockito.verify(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.verify(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); } private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(Long aclId) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclId); return mock; }

Test Case ID #cloudstack_Test_13_4

Test Case Name: befoteTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: aclRuleBeingMovedMock

Suggested Diff
@@ Mockito.when(moveNetworkAclItemCmdMock.getUuidRuleBeingMoved()).thenReturn(uuidAclRuleBeingMoved); - Mockito.when(aclRuleBeingMovedMock.getUuid()).thenReturn(uuidAclRuleBeingMoved); - Mockito.when(aclRuleBeingMovedMock.getAclId()).thenReturn(networkAclMockId); + aclRuleBeingMovedMock = createMockNetworkACLItemVO(networkAclMockId); + Mockito.when(aclRuleBeingMovedMock.getUuid()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(previousAclRuleMock.getUuid()).thenReturn(previousAclRuleUuid); Mockito.when(nextAclRuleMock.getUuid()).thenReturn(nextAclRuleUuid); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); @@
Original Test Code (click to expand)
@Before public void befoteTest() { PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(Mockito.mock(User.class)).when(callContextMock).getCallingUser(); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); Mockito.when(networkAclDaoMock.findById(networkAclListId)).thenReturn(networkACLVOMock); Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(1L); Mockito.when(createNetworkAclCmdMock.getProtocol()).thenReturn("tcp"); Mockito.when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingMockId); Mockito.when(networkMock.getVpcId()).thenReturn(networkMockVpcMockId); Mockito.when(moveNetworkAclItemCmdMock.getUuidRuleBeingMoved()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getUuid()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getAclId()).thenReturn(networkAclMockId); Mockito.when(previousAclRuleMock.getUuid()).thenReturn(previousAclRuleUuid); Mockito.when(nextAclRuleMock.getUuid()).thenReturn(nextAclRuleUuid); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); } private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(Long aclId) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclId); return mock; }

Mock Clone Instance #cloudstack_MCI_14

Reusable Method

private static NetworkACLItemVO createMockNetworkACLItemVO(String uuidReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getUuid()).thenReturn(uuidReturn); return mock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_14_1

Test Case Name: befoteTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: previousAclRuleMock

Suggested Diff
--- Original +++ Refactored @@ Mockito.when(aclRuleBeingMovedMock.getAclId()).thenReturn(networkAclMockId); - Mockito.when(previousAclRuleMock.getUuid()).thenReturn(previousAclRuleUuid); Mockito.when(nextAclRuleMock.getUuid()).thenReturn(nextAclRuleUuid); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); @@ + previousAclRuleMock = createMockNetworkACLItemVO(previousAclRuleUuid);
Original Test Code (click to expand)
@Before public void befoteTest() { PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(Mockito.mock(User.class)).when(callContextMock).getCallingUser(); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); Mockito.when(networkAclDaoMock.findById(networkAclListId)).thenReturn(networkACLVOMock); Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(1L); Mockito.when(createNetworkAclCmdMock.getProtocol()).thenReturn("tcp"); Mockito.when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingMockId); Mockito.when(networkMock.getVpcId()).thenReturn(networkMockVpcMockId); Mockito.when(moveNetworkAclItemCmdMock.getUuidRuleBeingMoved()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getUuid()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getAclId()).thenReturn(networkAclMockId); Mockito.when(previousAclRuleMock.getUuid()).thenReturn(previousAclRuleUuid); Mockito.when(nextAclRuleMock.getUuid()).thenReturn(nextAclRuleUuid); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); } private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(String uuidReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getUuid()).thenReturn(uuidReturn); return mock; }

Test Case ID #cloudstack_Test_14_2

Test Case Name: befoteTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: nextAclRuleMock

Suggested Diff
--- original +++ refactored @@ Mockito.when(previousAclRuleMock.getUuid()).thenReturn(previousAclRuleUuid); - Mockito.when(nextAclRuleMock.getUuid()).thenReturn(nextAclRuleUuid); + nextAclRuleMock = createMockNetworkACLItemVO(nextAclRuleUuid); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); @@
Original Test Code (click to expand)
@Before public void befoteTest() { PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(Mockito.mock(User.class)).when(callContextMock).getCallingUser(); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); Mockito.when(networkAclDaoMock.findById(networkAclListId)).thenReturn(networkACLVOMock); Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(1L); Mockito.when(createNetworkAclCmdMock.getProtocol()).thenReturn("tcp"); Mockito.when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingMockId); Mockito.when(networkMock.getVpcId()).thenReturn(networkMockVpcMockId); Mockito.when(moveNetworkAclItemCmdMock.getUuidRuleBeingMoved()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getUuid()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getAclId()).thenReturn(networkAclMockId); Mockito.when(previousAclRuleMock.getUuid()).thenReturn(previousAclRuleUuid); Mockito.when(nextAclRuleMock.getUuid()).thenReturn(nextAclRuleUuid); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); } private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(String uuidReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getUuid()).thenReturn(uuidReturn); return mock; }

Mock Clone Instance #cloudstack_MCI_15

Reusable Method

private static NetworkACLItemVO createMockNetworkACLItemVO(long aclIdReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclIdReturn); return mock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_15_1

Test Case Name: validateMoveAclRulesDataTestPreviousRuleWithDifferentAclId(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: previousAclRuleMock

Suggested Diff
--- original +++ refactored @@ @Test(expected = InvalidParameterValueException.class) public void validateMoveAclRulesDataTestPreviousRuleWithDifferentAclId() { - Mockito.when(previousAclRuleMock.getAclId()).thenReturn(99L); + previousAclRuleMock = createMockNetworkACLItemVO(99L); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, previousAclRuleMock, null); } @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test(expected = InvalidParameterValueException.class) public void validateMoveAclRulesDataTestPreviousRuleWithDifferentAclId() { Mockito.when(previousAclRuleMock.getAclId()).thenReturn(99L); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, previousAclRuleMock, null); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(long aclIdReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclIdReturn); return mock; }

Test Case ID #cloudstack_Test_15_2

Test Case Name: validateMoveAclRulesDataTestNextRuleWithDifferentAclId(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: nextAclRuleMock

Suggested Diff
--- Original +++ Refactored @@ @Test(expected = InvalidParameterValueException.class) public void validateMoveAclRulesDataTestNextRuleWithDifferentAclId() { - Mockito.when(nextAclRuleMock.getAclId()).thenReturn(99L); + nextAclRuleMock = createMockNetworkACLItemVO(99L); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, null, nextAclRuleMock); } @@
Original Test Code (click to expand)
private void configureMoveMethodsToDoNothing() { Mockito.doReturn(networkACLVOMock).when(networkAclDaoMock).acquireInLockTable(Mockito.anyLong()); Mockito.doReturn(true).when(networkAclDaoMock).releaseFromLockTable(Mockito.anyLong()); Mockito.doNothing().when(networkAclServiceImpl).validateAclConsistency(Mockito.any(MoveNetworkAclItemCmd.class), Mockito.any(NetworkACLVO.class), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(new ArrayList<>()).when(networkAclServiceImpl).getAllAclRulesSortedByNumber(networkAclMockId); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheTop(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleToTheBottom(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class)); Mockito.doReturn(aclRuleBeingMovedMock).when(networkAclServiceImpl).moveRuleBetweenAclRules(Mockito.eq(aclRuleBeingMovedMock), Mockito.anyListOf(NetworkACLItemVO.class), Mockito.eq(previousAclRuleMock), Mockito.eq(nextAclRuleMock)); } @Test(expected = InvalidParameterValueException.class) public void validateMoveAclRulesDataTestNextRuleWithDifferentAclId() { Mockito.when(nextAclRuleMock.getAclId()).thenReturn(99L); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, null, nextAclRuleMock); }
Reusable Method for MCI (click to expand)
private static NetworkACLItemVO createMockNetworkACLItemVO(long aclIdReturn) { NetworkACLItemVO mock = Mockito.mock(NetworkACLItemVO.class); Mockito.when(mock.getAclId()).thenReturn(aclIdReturn); return mock; }

Mock Clone Instance #cloudstack_MCI_16

Reusable Method

private static List<SnapshotVO> createMockSnapshotVOList(int sizeReturn) { List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(sizeReturn); return mockList; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_16_1

Test Case Name: testAllocSnapshotF2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\snapshot\SnapshotManagerTest.java)

Mock Object Variable Name: mockList

Suggested Diff
--- original +++ refactored @@ when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); - List<SnapshotVO> mockList = mock(List.class); - when(mockList.size()).thenReturn(1); + List<SnapshotVO> mockList = createMockSnapshotVOList(1); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); @@
Original Test Code (click to expand)
// active snapshots @SuppressWarnings("unchecked") @Test(expected = InvalidParameterValueException.class) public void testAllocSnapshotF2() throws ResourceAllocationException { when(_vmDao.findById(anyLong())).thenReturn(vmMock); when(vmMock.getId()).thenReturn(TEST_VM_ID); when(vmMock.getState()).thenReturn(State.Stopped); when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(1); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); }
Reusable Method for MCI (click to expand)
private static List<SnapshotVO> createMockSnapshotVOList(int sizeReturn) { List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(sizeReturn); return mockList; }

Test Case ID #cloudstack_Test_16_2

Test Case Name: testAllocSnapshotF3(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\snapshot\SnapshotManagerTest.java)

Mock Object Variable Name: mockList

Suggested Diff
--- original +++ refactored @@ when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); - List<SnapshotVO> mockList = mock(List.class); - when(mockList.size()).thenReturn(0); + List<SnapshotVO> mockList = createMockSnapshotVOList(0); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); List<VMSnapshotVO> mockList2 = mock(List.class); when(mockList2.size()).thenReturn(1); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); @@
Original Test Code (click to expand)
// active vm snapshots @SuppressWarnings("unchecked") @Test(expected = CloudRuntimeException.class) public void testAllocSnapshotF3() throws ResourceAllocationException { when(_vmDao.findById(anyLong())).thenReturn(vmMock); when(vmMock.getId()).thenReturn(TEST_VM_ID); when(vmMock.getState()).thenReturn(State.Stopped); when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(0); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); List<VMSnapshotVO> mockList2 = mock(List.class); when(mockList2.size()).thenReturn(1); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); }
Reusable Method for MCI (click to expand)
private static List<SnapshotVO> createMockSnapshotVOList(int sizeReturn) { List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(sizeReturn); return mockList; }

Test Case ID #cloudstack_Test_16_3

Test Case Name: testAllocSnapshotF4(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\snapshot\SnapshotManagerTest.java)

Mock Object Variable Name: mockList

Suggested Diff
--- original +++ refactored @@ when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); - List<SnapshotVO> mockList = mock(List.class); - when(mockList.size()).thenReturn(0); + List<SnapshotVO> mockList = createMockSnapshotVOList(0); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); List<VMSnapshotVO> mockList2 = mock(List.class); when(mockList2.size()).thenReturn(0); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); when(_snapshotDao.persist(any(SnapshotVO.class))).thenReturn(snapshotMock); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); @@
Original Test Code (click to expand)
// successful test @SuppressWarnings("unchecked") @Test public void testAllocSnapshotF4() throws ResourceAllocationException { when(_vmDao.findById(anyLong())).thenReturn(vmMock); when(vmMock.getId()).thenReturn(TEST_VM_ID); when(vmMock.getState()).thenReturn(State.Stopped); when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(0); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); List<VMSnapshotVO> mockList2 = mock(List.class); when(mockList2.size()).thenReturn(0); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); when(_snapshotDao.persist(any(SnapshotVO.class))).thenReturn(snapshotMock); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); }
Reusable Method for MCI (click to expand)
private static List<SnapshotVO> createMockSnapshotVOList(int sizeReturn) { List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(sizeReturn); return mockList; }

Mock Clone Instance #cloudstack_MCI_17

Reusable Method

public class MockVMInstanceDao { /** * Creates a mock VMInstanceDao with configurable stubbing for findById. * * @param idToVmMap a map from VM id to VMInstanceVO to be returned by findById * @return a mock VMInstanceDao with stubbing applied */ public static VMInstanceDao createMockVMInstanceDao(Map<Long, VMInstanceVO> idToVmMap) { VMInstanceDao vmInstanceDao = Mockito.mock(VMInstanceDao.class); for (Map.Entry<Long, VMInstanceVO> entry : idToVmMap.entrySet()) { when(vmInstanceDao.findById(entry.getKey())).thenReturn(entry.getValue()); } return vmInstanceDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_17_1

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
--- Original +++ Refactored @@ VMInstanceVO vm2 = new VMInstanceVO(); - when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); + Map<Long, VMInstanceVO> idToVmMap = new HashMap<>(); + idToVmMap.put(vm2Id, vm2); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(idToVmMap); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { /** * Creates a mock VMInstanceDao with configurable stubbing for findById. * * @param idToVmMap a map from VM id to VMInstanceVO to be returned by findById * @return a mock VMInstanceDao with stubbing applied */ public static VMInstanceDao createMockVMInstanceDao(Map<Long, VMInstanceVO> idToVmMap) { VMInstanceDao vmInstanceDao = Mockito.mock(VMInstanceDao.class); for (Map.Entry<Long, VMInstanceVO> entry : idToVmMap.entrySet()) { when(vmInstanceDao.findById(entry.getKey())).thenReturn(entry.getValue()); } return vmInstanceDao; } }

Test Case ID #cloudstack_Test_17_2

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
--- Original +++ Refactored @@ VMInstanceVO vm2 = new VMInstanceVO(); - when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); - when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); + Map<Long, VMInstanceVO> idToVmMap = new HashMap<>(); + idToVmMap.put(vm2Id, vm2); + idToVmMap.put(vm3Id, vm3); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(idToVmMap); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); @@
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.LOWER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { /** * Creates a mock VMInstanceDao with configurable stubbing for findById. * * @param idToVmMap a map from VM id to VMInstanceVO to be returned by findById * @return a mock VMInstanceDao with stubbing applied */ public static VMInstanceDao createMockVMInstanceDao(Map<Long, VMInstanceVO> idToVmMap) { VMInstanceDao vmInstanceDao = Mockito.mock(VMInstanceDao.class); for (Map.Entry<Long, VMInstanceVO> entry : idToVmMap.entrySet()) { when(vmInstanceDao.findById(entry.getKey())).thenReturn(entry.getValue()); } return vmInstanceDao; } }

Test Case ID #cloudstack_Test_17_3

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
--- original +++ refactored @@ List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); - when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); + Map<Long, VMInstanceVO> idToVmMap = new HashMap<>(); + idToVmMap.put(vm2Id, vm2); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(idToVmMap); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { /** * Creates a mock VMInstanceDao with configurable stubbing for findById. * * @param idToVmMap a map from VM id to VMInstanceVO to be returned by findById * @return a mock VMInstanceDao with stubbing applied */ public static VMInstanceDao createMockVMInstanceDao(Map<Long, VMInstanceVO> idToVmMap) { VMInstanceDao vmInstanceDao = Mockito.mock(VMInstanceDao.class); for (Map.Entry<Long, VMInstanceVO> entry : idToVmMap.entrySet()) { when(vmInstanceDao.findById(entry.getKey())).thenReturn(entry.getValue()); } return vmInstanceDao; } }

Test Case ID #cloudstack_Test_17_4

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
--- original +++ refactored @@ List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); - when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); + Map<Long, VMInstanceVO> idToVmMap = new HashMap<>(); + idToVmMap.put(vm2Id, vm2); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(idToVmMap); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { /** * Creates a mock VMInstanceDao with configurable stubbing for findById. * * @param idToVmMap a map from VM id to VMInstanceVO to be returned by findById * @return a mock VMInstanceDao with stubbing applied */ public static VMInstanceDao createMockVMInstanceDao(Map<Long, VMInstanceVO> idToVmMap) { VMInstanceDao vmInstanceDao = Mockito.mock(VMInstanceDao.class); for (Map.Entry<Long, VMInstanceVO> entry : idToVmMap.entrySet()) { when(vmInstanceDao.findById(entry.getKey())).thenReturn(entry.getValue()); } return vmInstanceDao; } }

Test Case ID #cloudstack_Test_17_5

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
--- original +++ refactored @@ VMInstanceVO vm2 = new VMInstanceVO(); - when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); - when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); + Map<Long, VMInstanceVO> idToVmMap = new HashMap<>(); + idToVmMap.put(vm2Id, vm2); + idToVmMap.put(vm3Id, vm3); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(idToVmMap); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.HIGHER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { /** * Creates a mock VMInstanceDao with configurable stubbing for findById. * * @param idToVmMap a map from VM id to VMInstanceVO to be returned by findById * @return a mock VMInstanceDao with stubbing applied */ public static VMInstanceDao createMockVMInstanceDao(Map<Long, VMInstanceVO> idToVmMap) { VMInstanceDao vmInstanceDao = Mockito.mock(VMInstanceDao.class); for (Map.Entry<Long, VMInstanceVO> entry : idToVmMap.entrySet()) { when(vmInstanceDao.findById(entry.getKey())).thenReturn(entry.getValue()); } return vmInstanceDao; } }

Test Case ID #cloudstack_Test_17_6

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
--- Original +++ Refactored @@ VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); - when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); + Map<Long, VMInstanceVO> idToVmMap = new HashMap<>(); + idToVmMap.put(vm2Id, vm2); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(idToVmMap); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { /** * Creates a mock VMInstanceDao with configurable stubbing for findById. * * @param idToVmMap a map from VM id to VMInstanceVO to be returned by findById * @return a mock VMInstanceDao with stubbing applied */ public static VMInstanceDao createMockVMInstanceDao(Map<Long, VMInstanceVO> idToVmMap) { VMInstanceDao vmInstanceDao = Mockito.mock(VMInstanceDao.class); for (Map.Entry<Long, VMInstanceVO> entry : idToVmMap.entrySet()) { when(vmInstanceDao.findById(entry.getKey())).thenReturn(entry.getValue()); } return vmInstanceDao; } }

Mock Clone Instance #cloudstack_MCI_18

Reusable Method

public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_18_1

Test Case Name: preparePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName());
Original Test Code (click to expand)
@Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_2

Test Case Name: prepareManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer);
Original Test Code (click to expand)
@Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_3

Test Case Name: prepareWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void prepareWithExceptionTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_4

Test Case Name: releasePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer);
Original Test Code (click to expand)
@Test public void releasePublicNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_5

Test Case Name: releaseManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Original Test Code (click to expand)
@Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_6

Test Case Name: releaseWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer);
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_7

Test Case Name: prepareMigrationTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context));
Original Test Code (click to expand)
@Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_8

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_9

Test Case Name: testRelease(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ final HostVO host = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(hostDao.findById(anyLong())).thenReturn(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); guru.release(nic, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testRelease() { final NicProfile nic = mock(NicProfile.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(hostDao.findById(anyLong())).thenReturn(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); guru.release(nic, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Test Case ID #cloudstack_Test_18_10

Test Case Name: testPrepareMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vmInstanceDao

Suggested Diff
@@ final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); - when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); + vmInstanceDao = MockVMInstanceDao.createMockVMInstanceDao(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVMInstanceDao { public static VMInstanceDao createMockVMInstanceDao(VMInstanceVO vmInstanceVO) { VMInstanceDao vmInstanceDao = mock(VMInstanceDao.class); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); return vmInstanceDao; } }

Mock Clone Instance #cloudstack_MCI_19

Reusable Method

private static PortForwardingRule createMockPortForwardingRule(FirewallRule.State state) { PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); when(portForwardingRule.getState()).thenReturn(state); return portForwardingRule; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_19_1

Test Case Name: applyPFRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: portForwardingRule

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); - when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); + PortForwardingRule portForwardingRule = createMockPortForwardingRule(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); @@
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
private static PortForwardingRule createMockPortForwardingRule(FirewallRule.State state) { PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); when(portForwardingRule.getState()).thenReturn(state); return portForwardingRule; }

Test Case ID #cloudstack_Test_19_2

Test Case Name: applyPFRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: portForwardingRule

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); + PortForwardingRule portForwardingRule = createMockPortForwardingRule(FirewallRule.State.Add); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); - when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); @@
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
private static PortForwardingRule createMockPortForwardingRule(FirewallRule.State state) { PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); when(portForwardingRule.getState()).thenReturn(state); return portForwardingRule; }

Test Case ID #cloudstack_Test_19_3

Test Case Name: applyPFRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: portForwardingRule

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); + PortForwardingRule portForwardingRule = createMockPortForwardingRule(FirewallRule.State.Revoke); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); - when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); @@
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
private static PortForwardingRule createMockPortForwardingRule(FirewallRule.State state) { PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); when(portForwardingRule.getState()).thenReturn(state); return portForwardingRule; }

Test Case ID #cloudstack_Test_19_4

Test Case Name: applyPFRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: portForwardingRule

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); + PortForwardingRule portForwardingRule = createMockPortForwardingRule(FirewallRule.State.Revoke); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); - when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); @@
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
private static PortForwardingRule createMockPortForwardingRule(FirewallRule.State state) { PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); when(portForwardingRule.getState()).thenReturn(state); return portForwardingRule; }

Mock Clone Instance #cloudstack_MCI_20

Reusable Method

private static List<VMSnapshotVO> createMockVMSnapshotVOList(int sizeReturn) { List<VMSnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(sizeReturn); return mockList; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_20_1

Test Case Name: testAllocSnapshotF3(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\snapshot\SnapshotManagerTest.java)

Mock Object Variable Name: mockList2

Suggested Diff
@@ when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); - List<VMSnapshotVO> mockList2 = mock(List.class); - when(mockList2.size()).thenReturn(1); + List<VMSnapshotVO> mockList2 = createMockVMSnapshotVOList(1); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); @@
Original Test Code (click to expand)
// active vm snapshots @SuppressWarnings("unchecked") @Test(expected = CloudRuntimeException.class) public void testAllocSnapshotF3() throws ResourceAllocationException { when(_vmDao.findById(anyLong())).thenReturn(vmMock); when(vmMock.getId()).thenReturn(TEST_VM_ID); when(vmMock.getState()).thenReturn(State.Stopped); when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(0); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); List<VMSnapshotVO> mockList2 = mock(List.class); when(mockList2.size()).thenReturn(1); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); }
Reusable Method for MCI (click to expand)
private static List<VMSnapshotVO> createMockVMSnapshotVOList(int sizeReturn) { List<VMSnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(sizeReturn); return mockList; }

Test Case ID #cloudstack_Test_20_2

Test Case Name: testAllocSnapshotF4(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\snapshot\SnapshotManagerTest.java)

Mock Object Variable Name: mockList2

Suggested Diff
@@ when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); - List<VMSnapshotVO> mockList2 = mock(List.class); - when(mockList2.size()).thenReturn(0); + List<VMSnapshotVO> mockList2 = createMockVMSnapshotVOList(0); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); when(_snapshotDao.persist(any(SnapshotVO.class))).thenReturn(snapshotMock); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); @@
Original Test Code (click to expand)
// successful test @SuppressWarnings("unchecked") @Test public void testAllocSnapshotF4() throws ResourceAllocationException { when(_vmDao.findById(anyLong())).thenReturn(vmMock); when(vmMock.getId()).thenReturn(TEST_VM_ID); when(vmMock.getState()).thenReturn(State.Stopped); when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(volumeInfoMock.getInstanceId()).thenReturn(TEST_VM_ID); List<SnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(0); when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList); List<VMSnapshotVO> mockList2 = mock(List.class); when(mockList2.size()).thenReturn(0); when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2); when(_snapshotDao.persist(any(SnapshotVO.class))).thenReturn(snapshotMock); _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null); }
Reusable Method for MCI (click to expand)
private static List<VMSnapshotVO> createMockVMSnapshotVOList(int sizeReturn) { List<VMSnapshotVO> mockList = mock(List.class); when(mockList.size()).thenReturn(sizeReturn); return mockList; }

Mock Clone Instance #cloudstack_MCI_21

Reusable Method

public class MockReservationContext { public static ReservationContext createMockReservationContext(Account account, Domain domain) { ReservationContext context = mock(ReservationContext.class); when(context.getAccount()).thenReturn(account); when(context.getDomain()).thenReturn(domain); return context; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_21_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: context

Suggested Diff
--- original +++ refactored @@ when(acc.getAccountName()).thenReturn("a1"); - ReservationContext context = mock(ReservationContext.class); - when(context.getDomain()).thenReturn(dom); - when(context.getAccount()).thenReturn(acc); + ReservationContext context = MockReservationContext.createMockReservationContext(acc, dom); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); @@
Original Test Code (click to expand)
@Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Account account, Domain domain) { ReservationContext context = mock(ReservationContext.class); when(context.getAccount()).thenReturn(account); when(context.getDomain()).thenReturn(domain); return context; } }

Test Case ID #cloudstack_Test_21_2

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: context

Suggested Diff
--- original +++ refactored @@ final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext context = mock(ReservationContext.class); - when(context.getDomain()).thenReturn(dom); - when(context.getAccount()).thenReturn(acc); + final ReservationContext context = MockReservationContext.createMockReservationContext(acc, dom); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); @@
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Account account, Domain domain) { ReservationContext context = mock(ReservationContext.class); when(context.getAccount()).thenReturn(account); when(context.getDomain()).thenReturn(domain); return context; } }

Test Case ID #cloudstack_Test_21_3

Test Case Name: implementSharedNetworkUuidVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: context

Suggested Diff
--- original +++ refactored @@ final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext context = mock(ReservationContext.class); - when(context.getDomain()).thenReturn(dom); - when(context.getAccount()).thenReturn(acc); + final ReservationContext context = MockReservationContext.createMockReservationContext(acc, dom); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkUuidVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Account account, Domain domain) { ReservationContext context = mock(ReservationContext.class); when(context.getAccount()).thenReturn(account); when(context.getDomain()).thenReturn(domain); return context; } }

Test Case ID #cloudstack_Test_21_4

Test Case Name: implementSharedNetworkNumericalVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext context = mock(ReservationContext.class); - when(context.getDomain()).thenReturn(dom); - when(context.getAccount()).thenReturn(acc); + final ReservationContext context = MockReservationContext.createMockReservationContext(acc, dom); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkNumericalVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn("bbbb-bbbb-bbbb"); final ConfigureSharedNetworkVlanIdAnswer answer = mock(ConfigureSharedNetworkVlanIdAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Account account, Domain domain) { ReservationContext context = mock(ReservationContext.class); when(context.getAccount()).thenReturn(account); when(context.getDomain()).thenReturn(domain); return context; } }

Test Case ID #cloudstack_Test_21_5

Test Case Name: implementSharedNetworkNumericalVlanIdWithoutL2GatewayService(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: context

Suggested Diff
--- original +++ refactored @@ final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext context = mock(ReservationContext.class); - when(context.getDomain()).thenReturn(dom); - when(context.getAccount()).thenReturn(acc); + final ReservationContext context = MockReservationContext.createMockReservationContext(acc, dom); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void implementSharedNetworkNumericalVlanIdWithoutL2GatewayService() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); element.implement(network, offering, dest, context); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Account account, Domain domain) { ReservationContext context = mock(ReservationContext.class); when(context.getAccount()).thenReturn(account); when(context.getDomain()).thenReturn(domain); return context; } }

Mock Clone Instance #cloudstack_MCI_22

Reusable Method

public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_22_1

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_2

Test Case Name: testImplementFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void testImplementFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_3

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_4

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); @@
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_5

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_6

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_7

Test Case Name: testImplementURIException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); @@
Original Test Code (click to expand)
@Test public void testImplementURIException() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_8

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - final ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + final ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_9

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_10

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ when(acc.getAccountName()).thenReturn("accountname"); - ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Test Case ID #cloudstack_Test_22_11

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: res

Suggested Diff
--- original +++ refactored @@ Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); - ReservationContext res = mock(ReservationContext.class); - when(res.getDomain()).thenReturn(dom); - when(res.getAccount()).thenReturn(acc); + ReservationContext res = MockReservationContext.createMockReservationContext(dom, acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockReservationContext { public static ReservationContext createMockReservationContext(Domain domain, Account account) { ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(domain); when(res.getAccount()).thenReturn(account); return res; } }

Mock Clone Instance #cloudstack_MCI_23

Reusable Method

// === Declare in class scope === private ReservationContext context; // === Add to @BeforeEach method === @BeforeEach public void setUp() { context = mock(ReservationContext.class); } // === Replace local variable in test with === context;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_23_1

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNull(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ when(cmds.getAnswer("checkSsh")).thenReturn(null); - ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `context` boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual);
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNull() throws Exception { VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(null); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext context; // === Add to @BeforeEach method === @BeforeEach public void setUp() { context = mock(ReservationContext.class); } // === Replace local variable in test with === context;

Test Case ID #cloudstack_Test_23_2

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNotNullButAnswerResultIsFalse(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); - ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `context` boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual);
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNotNullButAnswerResultIsFalse() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(false); VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext context; // === Add to @BeforeEach method === @BeforeEach public void setUp() { context = mock(ReservationContext.class); } // === Replace local variable in test with === context;

Test Case ID #cloudstack_Test_23_3

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNotNullAndAnswerResultIsTrue(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); - ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `context` boolean expected = true; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual);
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNotNullAndAnswerResultIsTrue() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(true); VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = true; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext context; // === Add to @BeforeEach method === @BeforeEach public void setUp() { context = mock(ReservationContext.class); } // === Replace local variable in test with === context;

Mock Clone Instance #cloudstack_MCI_24

Reusable Method

// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_24_1

Test Case Name: preparePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ DeployDestination deployDestination = mock(DeployDestination.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); @@
Original Test Code (click to expand)
@Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_2

Test Case Name: prepareManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Original Test Code (click to expand)
@Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_3

Test Case Name: prepareWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ DeployDestination deployDestination = mock(DeployDestination.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); @@ when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void prepareWithExceptionTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_4

Test Case Name: releasePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); @@ when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Original Test Code (click to expand)
@Test public void releasePublicNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_5

Test Case Name: releaseManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Original Test Code (click to expand)
@Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_6

Test Case Name: releaseWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_7

Test Case Name: destroyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test public void destroyTest() throws ConcurrentOperationException, ResourceUnavailableException { IPAddressVO ipAddressVO1 = mock(IPAddressVO.class); IPAddressVO ipAddressVO2 = mock(IPAddressVO.class); Network network = mock(Network.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` List<IPAddressVO> ipAddressVOList = Arrays.asList(ipAddressVO1, ipAddressVO2); TungstenAnswer tungstenDeleteFIPAnswer = mock(TungstenAnswer.class); TungstenAnswer tungstenDeleteNPAnswer = mock(TungstenAnswer.class); when(ipAddressDao.listByAssociatedNetwork(anyLong(), anyBoolean())).thenReturn(ipAddressVOList); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpCommand.class), anyLong())).thenReturn(tungstenDeleteFIPAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(tungstenDeleteNPAnswer); when(tungstenDeleteFIPAnswer.getResult()).thenReturn(true); when(tungstenDeleteNPAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.destroy(network, reservationContext)); }
Original Test Code (click to expand)
@Test public void destroyTest() throws ConcurrentOperationException, ResourceUnavailableException { IPAddressVO ipAddressVO1 = mock(IPAddressVO.class); IPAddressVO ipAddressVO2 = mock(IPAddressVO.class); Network network = mock(Network.class); ReservationContext reservationContext = mock(ReservationContext.class); List<IPAddressVO> ipAddressVOList = Arrays.asList(ipAddressVO1, ipAddressVO2); TungstenAnswer tungstenDeleteFIPAnswer = mock(TungstenAnswer.class); TungstenAnswer tungstenDeleteNPAnswer = mock(TungstenAnswer.class); when(ipAddressDao.listByAssociatedNetwork(anyLong(), anyBoolean())).thenReturn(ipAddressVOList); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpCommand.class), anyLong())).thenReturn(tungstenDeleteFIPAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(tungstenDeleteNPAnswer); when(tungstenDeleteFIPAnswer.getResult()).thenReturn(true); when(tungstenDeleteNPAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.destroy(network, reservationContext)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_8

Test Case Name: shutdownProviderInstancesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test public void shutdownProviderInstancesTest() throws ConcurrentOperationException { PhysicalNetworkServiceProvider physicalNetworkServiceProvider = mock(PhysicalNetworkServiceProvider.class); - ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` PhysicalNetworkVO physicalNetworkVO = mock(PhysicalNetworkVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); }
Original Test Code (click to expand)
@Test public void shutdownProviderInstancesTest() throws ConcurrentOperationException { PhysicalNetworkServiceProvider physicalNetworkServiceProvider = mock(PhysicalNetworkServiceProvider.class); ReservationContext reservationContext = mock(ReservationContext.class); PhysicalNetworkVO physicalNetworkVO = mock(PhysicalNetworkVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_9

Test Case Name: prepareMigrationTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ @Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); - ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); + assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, reservationContext)); }
Original Test Code (click to expand)
@Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_10

Test Case Name: rollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: src

Suggested Diff
@@ @Test public void rollbackMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - ReservationContext src = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); - tungstenElement.rollbackMigration(nic, network, vm, src, dest); + tungstenElement.rollbackMigration(nic, network, vm, reservationContext, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void rollbackMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Test Case ID #cloudstack_Test_24_11

Test Case Name: commitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: src

Suggested Diff
@@ @Test public void commitMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - ReservationContext src = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); - tungstenElement.commitMigration(nic, network, vm, src, dest); + tungstenElement.commitMigration(nic, network, vm, reservationContext, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void commitMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext;

Mock Clone Instance #cloudstack_MCI_25

Reusable Method

// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

The refactoring details in each test cases


Test Case ID #cloudstack_Test_25_1

Test Case Name: testImplementGuestNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test public void testImplementGuestNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); - final ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` final IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest);
Original Test Code (click to expand)
@Test public void testImplementGuestNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(network)).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new LogicalRouter(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "192.168.1.100")); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenService.allocateDnsIpAddress(any(Network.class), any(), anyString())).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(SetTungstenNetworkGatewayCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

Test Case ID #cloudstack_Test_25_2

Test Case Name: testImplementSharedNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test public void testImplementSharedNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); - final ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp);
Original Test Code (click to expand)
@Test public void testImplementSharedNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); when(vlanDao.listVlansByNetworkId(anyLong())).thenReturn(List.of(new VlanVO())); when(tungstenService.createSharedNetwork(any(Network.class), any(VlanVO.class))).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

Test Case ID #cloudstack_Test_25_3

Test Case Name: testImplementWithException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: reservationContext

Suggested Diff
@@ @Test(expected = CloudRuntimeException.class) public void testImplementWithException() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); - final ReservationContext reservationContext = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getState()).thenReturn(Network.State.Implementing); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(any(Network.class))).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new IOException())); guru.implement(network, offering, deployDestination, reservationContext); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testImplementWithException() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getState()).thenReturn(Network.State.Implementing); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(any(Network.class))).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new IOException())); guru.implement(network, offering, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

Test Case ID #cloudstack_Test_25_4

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ @Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); - final ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); - guru.reserve(nic, network, vm, dest, context); + guru.reserve(nic, network, vm, dest, reservationContext); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

Test Case ID #cloudstack_Test_25_5

Test Case Name: testPrepareMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ final DeployDestination dest = mock(DeployDestination.class); - final ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); @@ when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); - guru.prepareMigration(nic, network, vm, dest, context); + guru.prepareMigration(nic, network, vm, dest, reservationContext); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong());
Original Test Code (click to expand)
@Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

Test Case ID #cloudstack_Test_25_6

Test Case Name: testRollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ @Test public void testRollbackMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); - final ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); - guru.rollbackMigration(nic, network, vmProfile, context, context); + guru.rollbackMigration(nic, network, vmProfile, reservationContext, reservationContext); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testRollbackMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

Test Case ID #cloudstack_Test_25_7

Test Case Name: testCommitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: context

Suggested Diff
@@ @Test public void testCommitMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); - final ReservationContext context = mock(ReservationContext.class); + // removed local mock; replaced with global field `reservationContext` final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); - guru.commitMigration(nic, network, vmProfile, context, context); + guru.commitMigration(nic, network, vmProfile, reservationContext, reservationContext); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testCommitMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ReservationContext reservationContext; // === Add to @BeforeEach method === @BeforeEach public void setUp() { reservationContext = mock(ReservationContext.class); } // === Replace local variable in test with === reservationContext

Mock Clone Instance #cloudstack_MCI_26

Reusable Method

private static StoragePoolVO createMockStoragePoolVO(Storage.StoragePoolType poolTypeReturn, boolean isManagedReturn) { StoragePoolVO storagePoolVO = mock(StoragePoolVO.class); when(storagePoolVO.getPoolType()).thenReturn(poolTypeReturn); when(storagePoolVO.isManaged()).thenReturn(isManagedReturn); return storagePoolVO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_26_1

Test Case Name: testVerifyLiveMigrationMapForKVMMixedManagedUnmagedStorage(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\KvmNonManagedStorageSystemDataMotionTest.java)

Mock Object Variable Name: pool1

Suggested Diff
--- Original +++ Refactored @@ when(primaryDataStoreDao.findById(POOL_1_ID)).thenReturn(pool1); - when(pool1.isManaged()).thenReturn(false); when(dataStore2.getId()).thenReturn(POOL_2_ID); @@ when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); @@ when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); @@ @Test(expected = CloudRuntimeException.class) public void testVerifyLiveMigrationMapForKVMMixedManagedUnmagedStorage() { - when(pool1.isManaged()).thenReturn(true); - when(pool1.getId()).thenReturn(POOL_1_ID); + pool1 = createMockStoragePoolVO(Storage.StoragePoolType.NetworkFilesystem, true); + when(pool1.getId()).thenReturn(POOL_1_ID); when(pool2.getId()).thenReturn(POOL_2_ID); lenient().when(pool2.isManaged()).thenReturn(false); kvmNonManagedStorageDataMotionStrategy.verifyLiveMigrationForKVM(migrationMap, host2); }
Original Test Code (click to expand)
@Before public void setUp() { migrationMap = new HashMap<>(); migrationMap.put(volumeInfo1, dataStore2); migrationMap.put(volumeInfo2, dataStore2); when(volumeInfo1.getPoolId()).thenReturn(POOL_1_ID); when(primaryDataStoreDao.findById(POOL_1_ID)).thenReturn(pool1); when(pool1.isManaged()).thenReturn(false); when(dataStore2.getId()).thenReturn(POOL_2_ID); when(primaryDataStoreDao.findById(POOL_2_ID)).thenReturn(pool2); when(pool2.isManaged()).thenReturn(true); when(volumeInfo1.getDataStore()).thenReturn(dataStore1); when(volumeInfo2.getPoolId()).thenReturn(POOL_1_ID); lenient().when(volumeInfo2.getDataStore()).thenReturn(dataStore1); lenient().when(dataStore1.getId()).thenReturn(POOL_1_ID); when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); lenient().when(dataStore3.getId()).thenReturn(POOL_3_ID); lenient().when(primaryDataStoreDao.findById(POOL_3_ID)).thenReturn(pool3); lenient().when(pool3.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); lenient().when(pool3.getScope()).thenReturn(ScopeType.CLUSTER); when(host1.getId()).thenReturn(HOST_1_ID); when(host1.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(host2.getId()).thenReturn(HOST_2_ID); when(host2.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); } @Test(expected = CloudRuntimeException.class) public void testVerifyLiveMigrationMapForKVMMixedManagedUnmagedStorage() { when(pool1.isManaged()).thenReturn(true); when(pool1.getId()).thenReturn(POOL_1_ID); when(pool2.getId()).thenReturn(POOL_2_ID); lenient().when(pool2.isManaged()).thenReturn(false); kvmNonManagedStorageDataMotionStrategy.verifyLiveMigrationForKVM(migrationMap, host2); }
Reusable Method for MCI (click to expand)
private static StoragePoolVO createMockStoragePoolVO(Storage.StoragePoolType poolTypeReturn, boolean isManagedReturn) { StoragePoolVO storagePoolVO = mock(StoragePoolVO.class); when(storagePoolVO.getPoolType()).thenReturn(poolTypeReturn); when(storagePoolVO.isManaged()).thenReturn(isManagedReturn); return storagePoolVO; }

Test Case ID #cloudstack_Test_26_2

Test Case Name: testCanHandleLiveMigrationUnmanagedStorage(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\KvmNonManagedStorageSystemDataMotionTest.java)

Mock Object Variable Name: pool2

Suggested Diff
--- Original +++ Refactored @@ when(primaryDataStoreDao.findById(POOL_2_ID)).thenReturn(pool2); - when(pool2.isManaged()).thenReturn(true); + pool2 = createMockStoragePoolVO(Storage.StoragePoolType.NetworkFilesystem, true); when(volumeInfo1.getDataStore()).thenReturn(dataStore1); when(volumeInfo2.getPoolId()).thenReturn(POOL_1_ID); lenient().when(volumeInfo2.getDataStore()).thenReturn(dataStore1); lenient().when(dataStore1.getId()).thenReturn(POOL_1_ID); when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); - when(pool2.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); - when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); @@ lenient().when(pool2.isManaged()).thenReturn(false); @@
Original Test Code (click to expand)
@Before public void setUp() { migrationMap = new HashMap<>(); migrationMap.put(volumeInfo1, dataStore2); migrationMap.put(volumeInfo2, dataStore2); when(volumeInfo1.getPoolId()).thenReturn(POOL_1_ID); when(primaryDataStoreDao.findById(POOL_1_ID)).thenReturn(pool1); when(pool1.isManaged()).thenReturn(false); when(dataStore2.getId()).thenReturn(POOL_2_ID); when(primaryDataStoreDao.findById(POOL_2_ID)).thenReturn(pool2); when(pool2.isManaged()).thenReturn(true); when(volumeInfo1.getDataStore()).thenReturn(dataStore1); when(volumeInfo2.getPoolId()).thenReturn(POOL_1_ID); lenient().when(volumeInfo2.getDataStore()).thenReturn(dataStore1); lenient().when(dataStore1.getId()).thenReturn(POOL_1_ID); when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); lenient().when(dataStore3.getId()).thenReturn(POOL_3_ID); lenient().when(primaryDataStoreDao.findById(POOL_3_ID)).thenReturn(pool3); lenient().when(pool3.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); lenient().when(pool3.getScope()).thenReturn(ScopeType.CLUSTER); when(host1.getId()).thenReturn(HOST_1_ID); when(host1.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(host2.getId()).thenReturn(HOST_2_ID); when(host2.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); } @Test public void testCanHandleLiveMigrationUnmanagedStorage() { lenient().when(pool2.isManaged()).thenReturn(false); StrategyPriority priority = kvmNonManagedStorageDataMotionStrategy.canHandleKVMNonManagedLiveNFSStorageMigration(migrationMap, host1, host2); assertEquals(StrategyPriority.HYPERVISOR, priority); }
Reusable Method for MCI (click to expand)
private static StoragePoolVO createMockStoragePoolVO(Storage.StoragePoolType poolTypeReturn, boolean isManagedReturn) { StoragePoolVO storagePoolVO = mock(StoragePoolVO.class); when(storagePoolVO.getPoolType()).thenReturn(poolTypeReturn); when(storagePoolVO.isManaged()).thenReturn(isManagedReturn); return storagePoolVO; }

Test Case ID #cloudstack_Test_26_3

Test Case Name: testVerifyLiveMigrationMapForKVMMixedManagedUnmagedStorage(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\KvmNonManagedStorageSystemDataMotionTest.java)

Mock Object Variable Name: pool2

Suggested Diff
@@ when(pool1.isManaged()).thenReturn(true); when(pool1.getId()).thenReturn(POOL_1_ID); - when(pool2.getId()).thenReturn(POOL_2_ID); - lenient().when(pool2.isManaged()).thenReturn(false); + pool2 = createMockStoragePoolVO(Storage.StoragePoolType.NetworkFilesystem, false); + when(pool2.getId()).thenReturn(POOL_2_ID); kvmNonManagedStorageDataMotionStrategy.verifyLiveMigrationForKVM(migrationMap, host2);
Original Test Code (click to expand)
@Before public void setUp() { migrationMap = new HashMap<>(); migrationMap.put(volumeInfo1, dataStore2); migrationMap.put(volumeInfo2, dataStore2); when(volumeInfo1.getPoolId()).thenReturn(POOL_1_ID); when(primaryDataStoreDao.findById(POOL_1_ID)).thenReturn(pool1); when(pool1.isManaged()).thenReturn(false); when(dataStore2.getId()).thenReturn(POOL_2_ID); when(primaryDataStoreDao.findById(POOL_2_ID)).thenReturn(pool2); when(pool2.isManaged()).thenReturn(true); when(volumeInfo1.getDataStore()).thenReturn(dataStore1); when(volumeInfo2.getPoolId()).thenReturn(POOL_1_ID); lenient().when(volumeInfo2.getDataStore()).thenReturn(dataStore1); lenient().when(dataStore1.getId()).thenReturn(POOL_1_ID); when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); lenient().when(dataStore3.getId()).thenReturn(POOL_3_ID); lenient().when(primaryDataStoreDao.findById(POOL_3_ID)).thenReturn(pool3); lenient().when(pool3.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); lenient().when(pool3.getScope()).thenReturn(ScopeType.CLUSTER); when(host1.getId()).thenReturn(HOST_1_ID); when(host1.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(host2.getId()).thenReturn(HOST_2_ID); when(host2.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); } @Test(expected = CloudRuntimeException.class) public void testVerifyLiveMigrationMapForKVMMixedManagedUnmagedStorage() { when(pool1.isManaged()).thenReturn(true); when(pool1.getId()).thenReturn(POOL_1_ID); when(pool2.getId()).thenReturn(POOL_2_ID); lenient().when(pool2.isManaged()).thenReturn(false); kvmNonManagedStorageDataMotionStrategy.verifyLiveMigrationForKVM(migrationMap, host2); }
Reusable Method for MCI (click to expand)
private static StoragePoolVO createMockStoragePoolVO(Storage.StoragePoolType poolTypeReturn, boolean isManagedReturn) { StoragePoolVO storagePoolVO = mock(StoragePoolVO.class); when(storagePoolVO.getPoolType()).thenReturn(poolTypeReturn); when(storagePoolVO.isManaged()).thenReturn(isManagedReturn); return storagePoolVO; }

Mock Clone Instance #cloudstack_MCI_27

Reusable Method

private static VirtualRouter createMockVirtualRouter(long hostId) { VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(hostId); return vr; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_27_1

Test Case Name: testSendCommandsToRouter(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: vr

Suggested Diff
--- original +++ refactored @@ NetworkHelperImpl nwHelperUT = spy(this.nwHelper); - VirtualRouter vr = mock(VirtualRouter.class); - when(vr.getHostId()).thenReturn(HOST_ID); + VirtualRouter vr = createMockVirtualRouter(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(false); lenient().when(answer3.getResult()).thenReturn(false); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(0)).getResult(); assertFalse(result); @@
Original Test Code (click to expand)
@Test public void testSendCommandsToRouter() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(false); lenient().when(answer3.getResult()).thenReturn(false); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(0)).getResult(); assertFalse(result); }
Reusable Method for MCI (click to expand)
private static VirtualRouter createMockVirtualRouter(long hostId) { VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(hostId); return vr; }

Test Case ID #cloudstack_Test_27_2

Test Case Name: testSendCommandsToRouterWithTrueResult(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: vr

Suggested Diff
--- original +++ refactored @@ NetworkHelperImpl nwHelperUT = spy(this.nwHelper); - VirtualRouter vr = mock(VirtualRouter.class); - when(vr.getHostId()).thenReturn(HOST_ID); + VirtualRouter vr = createMockVirtualRouter(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); @@
Original Test Code (click to expand)
/** * The only way result can be true is if each and every command receive a true result * * @throws AgentUnavailableException * @throws OperationTimedoutException */ @Test public void testSendCommandsToRouterWithTrueResult() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(true); when(answer3.getResult()).thenReturn(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(1)).getResult(); assertTrue(result); }
Reusable Method for MCI (click to expand)
private static VirtualRouter createMockVirtualRouter(long hostId) { VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(hostId); return vr; }

Test Case ID #cloudstack_Test_27_3

Test Case Name: testSendCommandsToRouterWithNoAnswers(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: vr

Suggested Diff
@@ NetworkHelperImpl nwHelperUT = spy(this.nwHelper); - VirtualRouter vr = mock(VirtualRouter.class); - when(vr.getHostId()).thenReturn(HOST_ID); + VirtualRouter vr = createMockVirtualRouter(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2 }; when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(0)).getResult(); assertFalse(result); @@
Original Test Code (click to expand)
/** * If the number of answers is different to the number of commands the result is false * * @throws AgentUnavailableException * @throws OperationTimedoutException */ @Test public void testSendCommandsToRouterWithNoAnswers() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2 }; when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(0)).getResult(); assertFalse(result); }
Reusable Method for MCI (click to expand)
private static VirtualRouter createMockVirtualRouter(long hostId) { VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(hostId); return vr; }

Mock Clone Instance #cloudstack_MCI_28

Reusable Method

private static ConfigKey<Boolean> createMockConfigKeyValueIn(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.valueIn(valueInArg)).thenReturn(valueInReturn); return configKeyMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_28_1

Test Case Name: testDoNotSkip2FAcheckForUserWhen2FAMandated(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\api\ApiServletTest.java)

Mock Object Variable Name: mandateUserTwoFactorAuthentication

Suggested Diff
--- original +++ refactored @@ Mockito.when(userAccount.isUser2faEnabled()).thenReturn(false); - ConfigKey<Boolean> mandateUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.mandateUserTwoFactorAuthentication = mandateUserTwoFactorAuthentication; - Mockito.when(mandateUserTwoFactorAuthentication.valueIn(1L)).thenReturn(false); + ConfigKey<Boolean> mandateUserTwoFactorAuthentication = createMockConfigKeyValueIn(1L, false); boolean result = servlet.skip2FAcheckForUser(cuurentSession); Assert.assertEquals(true, result); } @@
Original Test Code (click to expand)
@Test public void testDoNotSkip2FAcheckForUserWhen2FAMandated() { servlet.accountMgr = accountMgr; HttpSession cuurentSession = Mockito.mock(HttpSession.class); Mockito.when(cuurentSession.getAttribute("userid")).thenReturn(1L); Mockito.when(cuurentSession.getAttribute(ApiConstants.IS_2FA_VERIFIED)).thenReturn(false); Mockito.when(accountMgr.getUserAccountById(1L)).thenReturn(userAccount); Mockito.when(userAccount.getDomainId()).thenReturn(1L); Mockito.when(userAccount.isUser2faEnabled()).thenReturn(false); ConfigKey<Boolean> mandateUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.mandateUserTwoFactorAuthentication = mandateUserTwoFactorAuthentication; Mockito.when(mandateUserTwoFactorAuthentication.valueIn(1L)).thenReturn(false); boolean result = servlet.skip2FAcheckForUser(cuurentSession); Assert.assertEquals(true, result); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Boolean> createMockConfigKeyValueIn(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.valueIn(valueInArg)).thenReturn(valueInReturn); return configKeyMock; }

Test Case ID #cloudstack_Test_28_2

Test Case Name: testSkip2FAcheckForUserWhen2FAisNotEnabledAndNotMandated(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\api\ApiServletTest.java)

Mock Object Variable Name: enableUserTwoFactorAuthentication

Suggested Diff
@@ Mockito.when(userAccount.getDomainId()).thenReturn(1L); Mockito.when(userAccount.isUser2faEnabled()).thenReturn(false); - ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); - AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; - Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); + ConfigKey<Boolean> enableUserTwoFactorAuthentication = createMockConfigKeyValueIn(1L, true); + AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; ConfigKey<Boolean> mandateUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.mandateUserTwoFactorAuthentication = mandateUserTwoFactorAuthentication; Mockito.when(mandateUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); boolean result = servlet.skip2FAcheckForUser(cuurentSession); Assert.assertEquals(false, result); } @@
Original Test Code (click to expand)
@Test public void testSkip2FAcheckForUserWhen2FAisNotEnabledAndNotMandated() { servlet.accountMgr = accountMgr; HttpSession cuurentSession = Mockito.mock(HttpSession.class); Mockito.when(cuurentSession.getAttribute("userid")).thenReturn(1L); Mockito.when(cuurentSession.getAttribute(ApiConstants.IS_2FA_VERIFIED)).thenReturn(false); Mockito.when(accountMgr.getUserAccountById(1L)).thenReturn(userAccount); Mockito.when(userAccount.getDomainId()).thenReturn(1L); Mockito.when(userAccount.isUser2faEnabled()).thenReturn(false); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); ConfigKey<Boolean> mandateUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.mandateUserTwoFactorAuthentication = mandateUserTwoFactorAuthentication; Mockito.when(mandateUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); boolean result = servlet.skip2FAcheckForUser(cuurentSession); Assert.assertEquals(false, result); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Boolean> createMockConfigKeyValueIn(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.valueIn(valueInArg)).thenReturn(valueInReturn); return configKeyMock; }

Test Case ID #cloudstack_Test_28_3

Test Case Name: testSkip2FAcheckForUserWhen2FAisNotEnabledAndNotMandated(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\api\ApiServletTest.java)

Mock Object Variable Name: mandateUserTwoFactorAuthentication

Suggested Diff
--- original +++ refactored @@ Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); - ConfigKey<Boolean> mandateUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); - AccountManagerImpl.mandateUserTwoFactorAuthentication = mandateUserTwoFactorAuthentication; - Mockito.when(mandateUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); + ConfigKey<Boolean> mandateUserTwoFactorAuthentication = createMockConfigKeyValueIn(1L, true); + AccountManagerImpl.mandateUserTwoFactorAuthentication = mandateUserTwoFactorAuthentication; boolean result = servlet.skip2FAcheckForUser(cuurentSession); Assert.assertEquals(false, result); }
Original Test Code (click to expand)
@Test public void testSkip2FAcheckForUserWhen2FAisNotEnabledAndNotMandated() { servlet.accountMgr = accountMgr; HttpSession cuurentSession = Mockito.mock(HttpSession.class); Mockito.when(cuurentSession.getAttribute("userid")).thenReturn(1L); Mockito.when(cuurentSession.getAttribute(ApiConstants.IS_2FA_VERIFIED)).thenReturn(false); Mockito.when(accountMgr.getUserAccountById(1L)).thenReturn(userAccount); Mockito.when(userAccount.getDomainId()).thenReturn(1L); Mockito.when(userAccount.isUser2faEnabled()).thenReturn(false); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); ConfigKey<Boolean> mandateUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.mandateUserTwoFactorAuthentication = mandateUserTwoFactorAuthentication; Mockito.when(mandateUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); boolean result = servlet.skip2FAcheckForUser(cuurentSession); Assert.assertEquals(false, result); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Boolean> createMockConfigKeyValueIn(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.valueIn(valueInArg)).thenReturn(valueInReturn); return configKeyMock; }

Mock Clone Instance #cloudstack_MCI_29

Reusable Method

private static ConfigKey<Boolean> createMockEnableUserTwoFactorAuthentication(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); Mockito.when(enableUserTwoFactorAuthentication.valueIn(valueInArg)).thenReturn(valueInReturn); return enableUserTwoFactorAuthentication; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_29_1

Test Case Name: testEnableUserTwoFactorAuthenticationWhenDomainlevelSettingisDisabled(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: enableUserTwoFactorAuthentication

Suggested Diff
--- original +++ refactored @@ Mockito.when(userAccount.getDomainId()).thenReturn(1L); - ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); - AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; - Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(false); + ConfigKey<Boolean> enableUserTwoFactorAuthentication = createMockEnableUserTwoFactorAuthentication(1L, false); + AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; accountManagerImpl.enableTwoFactorAuthentication(userId, "totp"); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testEnableUserTwoFactorAuthenticationWhenDomainlevelSettingisDisabled() { Long userId = 1L; UserAccountVO userAccount = Mockito.mock(UserAccountVO.class); UserVO userVO = Mockito.mock(UserVO.class); Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount); Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO); Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(false); accountManagerImpl.enableTwoFactorAuthentication(userId, "totp"); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Boolean> createMockEnableUserTwoFactorAuthentication(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); Mockito.when(enableUserTwoFactorAuthentication.valueIn(valueInArg)).thenReturn(valueInReturn); return enableUserTwoFactorAuthentication; }

Test Case ID #cloudstack_Test_29_2

Test Case Name: testEnableUserTwoFactorAuthenticationWhenProviderNameIsNullExpectedDefaultProviderTOTP(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: enableUserTwoFactorAuthentication

Suggested Diff
--- original +++ refactored @@ Mockito.when(userAccount.getDomainId()).thenReturn(1L); - ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); - AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; - Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); + ConfigKey<Boolean> enableUserTwoFactorAuthentication = createMockEnableUserTwoFactorAuthentication(1L, true); + AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); @@
Original Test Code (click to expand)
@Test public void testEnableUserTwoFactorAuthenticationWhenProviderNameIsNullExpectedDefaultProviderTOTP() { Long userId = 1L; UserAccountVO userAccount = Mockito.mock(UserAccountVO.class); UserVO userVO = Mockito.mock(UserVO.class); Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount); Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO); Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, null); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Boolean> createMockEnableUserTwoFactorAuthentication(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); Mockito.when(enableUserTwoFactorAuthentication.valueIn(valueInArg)).thenReturn(valueInReturn); return enableUserTwoFactorAuthentication; }

Test Case ID #cloudstack_Test_29_3

Test Case Name: testEnableUserTwoFactorAuthentication(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: enableUserTwoFactorAuthentication

Suggested Diff
--- original +++ refactored @@ Mockito.when(userAccount.getDomainId()).thenReturn(1L); - ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); - AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; - Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); + ConfigKey<Boolean> enableUserTwoFactorAuthentication = createMockEnableUserTwoFactorAuthentication(1L, true); + AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); @@
Original Test Code (click to expand)
@Test public void testEnableUserTwoFactorAuthentication() { Long userId = 1L; UserAccountVO userAccount = Mockito.mock(UserAccountVO.class); UserVO userVO = Mockito.mock(UserVO.class); Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount); Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO); Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, "totp"); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Boolean> createMockEnableUserTwoFactorAuthentication(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); Mockito.when(enableUserTwoFactorAuthentication.valueIn(valueInArg)).thenReturn(valueInReturn); return enableUserTwoFactorAuthentication; }

Test Case ID #cloudstack_Test_29_4

Test Case Name: testEnable2FAcode(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: enableUserTwoFactorAuthenticationMock

Suggested Diff
--- Original +++ Refactored @@ Mockito.when(userAccountVO.getDomainId()).thenReturn(1L); - Mockito.when(enableUserTwoFactorAuthenticationMock.valueIn(1L)).thenReturn(true); + enableUserTwoFactorAuthenticationMock = createMockEnableUserTwoFactorAuthentication(1L, true); Mockito.when(cmd.getEnable()).thenReturn(true); UserTwoFactorAuthenticator staticpinProvider = Mockito.mock(UserTwoFactorAuthenticator.class); @@
Original Test Code (click to expand)
@Test public void testEnable2FAcode() { SetupUserTwoFactorAuthenticationCmd cmd = Mockito.mock(SetupUserTwoFactorAuthenticationCmd.class); Mockito.when(cmd.getProvider()).thenReturn("staticpin"); AccountVO accountMock = Mockito.mock(AccountVO.class); Mockito.when(callingAccount.getId()).thenReturn(1L); Mockito.when(callingUser.getId()).thenReturn(1L); // Calling account is user account i.e normal account CallContext.register(callingUser, callingAccount); Mockito.lenient().when(_accountService.getActiveAccountById(1L)).thenReturn(accountMock); Mockito.when(userAccountDaoMock.findById(1L)).thenReturn(userAccountVO); Mockito.when(userDaoMock.findById(1L)).thenReturn(userVoMock); Mockito.when(userAccountVO.getDomainId()).thenReturn(1L); Mockito.when(enableUserTwoFactorAuthenticationMock.valueIn(1L)).thenReturn(true); Mockito.when(cmd.getEnable()).thenReturn(true); UserTwoFactorAuthenticator staticpinProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("staticpin")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("staticpin")).thenReturn(staticpinProvider); Mockito.when(staticpinProvider.setup2FAKey(userAccountVO)).thenReturn("345543"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.setupUserTwoFactorAuthentication(cmd); Assert.assertEquals("345543", response.getSecretCode()); } @Before public void setUp() throws Exception { enableUserTwoFactorAuthenticationMock = Mockito.mock(ConfigKey.class); accountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthenticationMock; }
Reusable Method for MCI (click to expand)
private static ConfigKey<Boolean> createMockEnableUserTwoFactorAuthentication(long valueInArg, boolean valueInReturn) { ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); Mockito.when(enableUserTwoFactorAuthentication.valueIn(valueInArg)).thenReturn(valueInReturn); return enableUserTwoFactorAuthentication; }

Mock Clone Instance #cloudstack_MCI_30

Reusable Method

private static VolumeTO createMockVolumeTO(String path) { VolumeTO volumeTO = Mockito.mock(VolumeTO.class); when(volumeTO.getPath()).thenReturn(path); return volumeTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_30_1

Test Case Name: testMigrateWithStorageCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vol1

Suggested Diff
--- original +++ refactored @@ final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final VolumeTO vol1 = Mockito.mock(VolumeTO.class); + final VolumeTO vol1 = createMockVolumeTO(path); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); - when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VolumeTO createMockVolumeTO(String path) { VolumeTO volumeTO = Mockito.mock(VolumeTO.class); when(volumeTO.getPath()).thenReturn(path); return volumeTO; }

Test Case ID #cloudstack_Test_30_2

Test Case Name: testMigrateWithStorageCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vol2

Suggested Diff
--- original +++ refactored @@ final VolumeTO vol1 = Mockito.mock(VolumeTO.class); - final VolumeTO vol2 = Mockito.mock(VolumeTO.class); + final VolumeTO vol2 = createMockVolumeTO(path); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); @@ when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); - when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VolumeTO createMockVolumeTO(String path) { VolumeTO volumeTO = Mockito.mock(VolumeTO.class); when(volumeTO.getPath()).thenReturn(path); return volumeTO; }

Test Case ID #cloudstack_Test_30_3

Test Case Name: testMigrateWithStorageSendCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: volume1

Suggested Diff
--- original +++ refactored @@ final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final VolumeTO volume1 = Mockito.mock(VolumeTO.class); + final VolumeTO volume1 = createMockVolumeTO(path); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); @@ when(vmSpec.getName()).thenReturn(vmName); - when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommand() { final String vmName = "small"; final String path = "/"; final String mac = "3c:15:c2:c4:4f:18"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getVifByMac(conn, null, nic1.getMac())).thenReturn(vif1); when(xenServer610Resource.getVifByMac(conn, null, nic2.getMac())).thenReturn(vif2); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(2)).getVDIbyUuid(conn, volume1.getPath()); verify(xenServer610Resource, times(2)).getVifByMac(conn, null, nic1.getMac()); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VolumeTO createMockVolumeTO(String path) { VolumeTO volumeTO = Mockito.mock(VolumeTO.class); when(volumeTO.getPath()).thenReturn(path); return volumeTO; }

Test Case ID #cloudstack_Test_30_4

Test Case Name: testMigrateWithStorageSendCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: volume2

Suggested Diff
--- original +++ refactored @@ final VolumeTO volume1 = Mockito.mock(VolumeTO.class); - final VolumeTO volume2 = Mockito.mock(VolumeTO.class); + final VolumeTO volume2 = createMockVolumeTO(path); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); @@ when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); - when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommand() { final String vmName = "small"; final String path = "/"; final String mac = "3c:15:c2:c4:4f:18"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getVifByMac(conn, null, nic1.getMac())).thenReturn(vif1); when(xenServer610Resource.getVifByMac(conn, null, nic2.getMac())).thenReturn(vif2); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(2)).getVDIbyUuid(conn, volume1.getPath()); verify(xenServer610Resource, times(2)).getVifByMac(conn, null, nic1.getMac()); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VolumeTO createMockVolumeTO(String path) { VolumeTO volumeTO = Mockito.mock(VolumeTO.class); when(volumeTO.getPath()).thenReturn(path); return volumeTO; }

Test Case ID #cloudstack_Test_30_5

Test Case Name: testMigrateWithStorageSendCommandNetException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: volume1

Suggested Diff
--- original +++ refactored @@ final String vmName = "small"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final VolumeTO volume1 = Mockito.mock(VolumeTO.class); + final VolumeTO volume1 = createMockVolumeTO(path); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); @@ when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); - when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommandNetException() { final String vmName = "small"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); Gson gson = new Gson(); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, new String("a"))); nicToNetwork.add(new Pair<NicTO, Object>(nic2, new String("b"))); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VolumeTO createMockVolumeTO(String path) { VolumeTO volumeTO = Mockito.mock(VolumeTO.class); when(volumeTO.getPath()).thenReturn(path); return volumeTO; }

Test Case ID #cloudstack_Test_30_6

Test Case Name: testMigrateWithStorageSendCommandNetException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: volume2

Suggested Diff
--- original +++ refactored @@ final VolumeTO volume1 = Mockito.mock(VolumeTO.class); - final VolumeTO volume2 = Mockito.mock(VolumeTO.class); + final VolumeTO volume2 = createMockVolumeTO(path); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); @@ when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); - when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommandNetException() { final String vmName = "small"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); Gson gson = new Gson(); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, new String("a"))); nicToNetwork.add(new Pair<NicTO, Object>(nic2, new String("b"))); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VolumeTO createMockVolumeTO(String path) { VolumeTO volumeTO = Mockito.mock(VolumeTO.class); when(volumeTO.getPath()).thenReturn(path); return volumeTO; }

Mock Clone Instance #cloudstack_MCI_31

Reusable Method

// === Declare in class scope === private VolumeTO vol1; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vol1 = mock(VolumeTO.class); } // === Replace local variable in test with === vol1

The refactoring details in each test cases


Test Case ID #cloudstack_Test_31_1

Test Case Name: testMigrateWithStorageReceiveCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vol1

Suggested Diff
@@ @Test public void testMigrateWithStorageReceiveCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final VolumeTO vol1 = Mockito.mock(VolumeTO.class); + // removed local mock; replaced with global field `vol1` final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class);
Original Test Code (click to expand)
@Test public void testMigrateWithStorageReceiveCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network network = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Network nw1 = Mockito.mock(Network.class); final Network nw2 = Mockito.mock(Network.class); final Network nw3 = Mockito.mock(Network.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final MigrateWithStorageReceiveCommand migrateStorageCommand = new MigrateWithStorageReceiveCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); try { when(xenServer610Resource.getNetwork(conn, nicTO1)).thenReturn(nw1); when(xenServer610Resource.getNetwork(conn, nicTO2)).thenReturn(nw2); when(xenServer610Resource.getNetwork(conn, nicTO3)).thenReturn(nw3); when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(network); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VolumeTO vol1; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vol1 = mock(VolumeTO.class); } // === Replace local variable in test with === vol1

Test Case ID #cloudstack_Test_31_2

Test Case Name: testMigrateWithStorageSendCommandSRException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: volume1

Suggested Diff
@@ @Test public void testMigrateWithStorageSendCommandSRException() { final String vmName = "small"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final VolumeTO volume1 = Mockito.mock(VolumeTO.class); + // removed local mock; replaced with global field `vol1` final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); - volumeToSr.add(new Pair<VolumeTO, Object>(volume1, new String("a"))); + volumeToSr.add(new Pair<VolumeTO, Object>(vol1, new String("a"))); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, new String("b"))); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommandSRException() { final String vmName = "small"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, new String("a"))); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, new String("b"))); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VolumeTO vol1; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vol1 = mock(VolumeTO.class); } // === Replace local variable in test with === vol1

Mock Clone Instance #cloudstack_MCI_32

Reusable Method

public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_32_1

Test Case Name: preparePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName());
Original Test Code (click to expand)
@Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Test Case ID #cloudstack_Test_32_2

Test Case Name: prepareManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); @@
Original Test Code (click to expand)
@Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Test Case ID #cloudstack_Test_32_3

Test Case Name: prepareWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void prepareWithExceptionTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Test Case ID #cloudstack_Test_32_4

Test Case Name: releasePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm);
Original Test Code (click to expand)
@Test public void releasePublicNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Test Case ID #cloudstack_Test_32_5

Test Case Name: releaseManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); @@
Original Test Code (click to expand)
@Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Test Case ID #cloudstack_Test_32_6

Test Case Name: releaseWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
--- Original +++ Refactored @@ VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Test Case ID #cloudstack_Test_32_7

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong());
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Test Case ID #cloudstack_Test_32_8

Test Case Name: testRelease(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); - when(hostDao.findById(anyLong())).thenReturn(host); + hostDao = MockHostDao.createMockHostDao(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); guru.release(nic, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testRelease() { final NicProfile nic = mock(NicProfile.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(hostDao.findById(anyLong())).thenReturn(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); guru.release(nic, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO host) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(host); return hostDao; } }

Mock Clone Instance #cloudstack_MCI_33

Reusable Method

public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_33_1

Test Case Name: testCommitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); } @@
Original Test Code (click to expand)
@Test public void testCommitMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Test Case ID #cloudstack_Test_33_2

Test Case Name: processHostAboutToBeRemovedWithSecurityGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(networkDao.listByZoneSecurityGroup(anyLong())).thenReturn(List.of(network)); tungstenElement.processHostAboutToBeRemoved(1L);
Original Test Code (click to expand)
//@Test //public void processConnectWithoutSecurityGroupTest() throws ConnectionException { // Host host = mock(Host.class); // StartupCommand startupCommand = mock(StartupCommand.class); // TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); // DataCenterVO dataCenterVO = mock(DataCenterVO.class); // VlanVO vlanVO1 = mock(VlanVO.class); // VlanVO vlanVO2 = mock(VlanVO.class); // List<VlanVO> vlanList = Arrays.asList(vlanVO1, vlanVO2); // Network publicNetwork = mock(Network.class); // NetworkDetailVO networkDetail = mock(NetworkDetailVO.class); // // when(host.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); // when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); // when(host.getPublicIpAddress()).thenReturn("192.168.100.100"); // when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); // when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); // when(vlanDao.listByZone(anyLong())).thenReturn(vlanList); // when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); // when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetail); // when(vlanVO1.getVlanGateway()).thenReturn("192.168.100.1"); // when(vlanVO1.getVlanNetmask()).thenReturn("255.255.255.0"); // when(vlanVO2.getVlanGateway()).thenReturn("192.168.101.1"); // when(vlanVO2.getVlanNetmask()).thenReturn("255.255.255.0"); // when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(false); // // tungstenElement.processConnect(host, startupCommand, true); // verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); //} //@Test //public void processConnectWithSecurityGroupTest() throws ConnectionException { // Host host = mock(Host.class); // StartupCommand startupCommand = mock(StartupCommand.class); // TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); // DataCenterVO dataCenterVO = mock(DataCenterVO.class); // NetworkVO network = mock(NetworkVO.class); // NetworkDetailVO networkDetail = mock(NetworkDetailVO.class); // Network publicNetwork = mock(Network.class); // // when(host.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); // when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); // when(host.getPublicIpAddress()).thenReturn("192.168.100.100"); // when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); // when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); // when(networkDao.listByZoneSecurityGroup(anyLong())).thenReturn(Arrays.asList(network)); // when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetail); // when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); // when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); // // tungstenElement.processConnect(host, startupCommand, true); // verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); //} @Test public void processHostAboutToBeRemovedWithSecurityGroupTest() { HostVO hostVO = mock(HostVO.class); TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); NetworkVO network = mock(NetworkVO.class); when(hostVO.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); when(hostVO.getPublicIpAddress()).thenReturn("192.168.100.100"); when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(networkDao.listByZoneSecurityGroup(anyLong())).thenReturn(List.of(network)); tungstenElement.processHostAboutToBeRemoved(1L); verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Test Case ID #cloudstack_Test_33_3

Test Case Name: processHostAboutToBeRemovedWithoutSecurityGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(false); tungstenElement.processHostAboutToBeRemoved(1L);
Original Test Code (click to expand)
@Test public void processHostAboutToBeRemovedWithoutSecurityGroupTest() { HostVO hostVO = mock(HostVO.class); TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(hostVO.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); when(hostVO.getPublicIpAddress()).thenReturn("192.168.100.100"); when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(false); tungstenElement.processHostAboutToBeRemoved(1L); verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Test Case ID #cloudstack_Test_33_4

Test Case Name: prepareMigrationTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
--- original +++ refactored @@ when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); @@
Original Test Code (click to expand)
@Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Test Case ID #cloudstack_Test_33_5

Test Case Name: rollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void rollbackMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Test Case ID #cloudstack_Test_33_6

Test Case Name: commitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void commitMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Test Case ID #cloudstack_Test_33_7

Test Case Name: testPrepareMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong());
Original Test Code (click to expand)
@Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Test Case ID #cloudstack_Test_33_8

Test Case Name: testRollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: hostDao

Suggested Diff
@@ final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); - when(hostDao.findById(anyLong())).thenReturn(hostVO); + hostDao = MockHostDao.createMockHostDao(hostVO); guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testRollbackMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockHostDao { public static HostDao createMockHostDao(HostVO hostVO) { HostDao hostDao = mock(HostDao.class); when(hostDao.findById(anyLong())).thenReturn(hostVO); return hostDao; } }

Mock Clone Instance #cloudstack_MCI_34

Reusable Method

private static CallContext createMockCallContext(Account callingAccount) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(callingAccount).when(callContextMock).getCallingAccount(); return callContextMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_34_1

Test Case Name: validateNetworkAclTestAclNotDefaulWithVpc(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
--- original +++ refactored @@ public void validateNetworkAclTestAclNotDefaulWithVpc() { - CallContext callContextMock = Mockito.mock(CallContext.class); - Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); + Account callingAccount = Mockito.mock(Account.class); + CallContext callContextMock = createMockCallContext(callingAccount); PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.when(networkAclMock.getId()).thenReturn(3L); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); Mockito.doReturn(Mockito.mock(Vpc.class)).when(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.doNothing().when(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); networkAclServiceImpl.validateNetworkAcl(networkAclMock); Mockito.verify(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.verify(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); PowerMockito.verifyStatic(CallContext.class); CallContext.current(); }
Original Test Code (click to expand)
@Test @PrepareForTest(CallContext.class) public void validateNetworkAclTestAclNotDefaulWithVpc() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.when(networkAclMock.getId()).thenReturn(3L); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); Mockito.doReturn(Mockito.mock(Vpc.class)).when(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.doNothing().when(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); networkAclServiceImpl.validateNetworkAcl(networkAclMock); Mockito.verify(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.verify(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); PowerMockito.verifyStatic(CallContext.class); CallContext.current(); }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account callingAccount) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(callingAccount).when(callContextMock).getCallingAccount(); return callContextMock; }

Test Case ID #cloudstack_Test_34_2

Test Case Name: validateMoveAclRulesDataTestSuccesfullExecution(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
--- original +++ refactored @@ Mockito.doReturn(Mockito.mock(Vpc.class)).when(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); - CallContext callContextMock = Mockito.mock(CallContext.class); - Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); + CallContext callContextMock = createMockCallContext(Mockito.mock(Account.class)); PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doNothing().when(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, previousAclRuleMock, nextAclRuleMock); @@
Original Test Code (click to expand)
@Test public void validateMoveAclRulesDataTestSuccesfullExecution() { Mockito.when(nextAclRuleMock.getAclId()).thenReturn(networkAclMockId); Mockito.when(previousAclRuleMock.getAclId()).thenReturn(networkAclMockId); Mockito.doReturn(networkAclMock).when(networkAclDaoMock).findById(networkAclMockId); Mockito.doReturn(Mockito.mock(Vpc.class)).when(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doNothing().when(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); networkAclServiceImpl.validateMoveAclRulesData(aclRuleBeingMovedMock, previousAclRuleMock, nextAclRuleMock); Mockito.verify(networkAclDaoMock).findById(networkAclMockId); Mockito.verify(entityManagerMock).findById(Vpc.class, networkMockVpcMockId); Mockito.verify(accountManagerMock).checkAccess(Mockito.any(Account.class), Mockito.isNull(AccessType.class), Mockito.eq(true), Mockito.any(Vpc.class)); }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account callingAccount) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(callingAccount).when(callContextMock).getCallingAccount(); return callContextMock; }

Test Case ID #cloudstack_Test_34_3

Test Case Name: befoteTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
@@ PowerMockito.mockStatic(CallContext.class); - PowerMockito.when(CallContext.current()).thenReturn(callContextMock); - Mockito.doReturn(Mockito.mock(User.class)).when(callContextMock).getCallingUser(); - Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); + callContextMock = createMockCallContext(Mockito.mock(Account.class)); + PowerMockito.when(CallContext.current()).thenReturn(callContextMock); + Mockito.doReturn(Mockito.mock(User.class)).when(callContextMock).getCallingUser(); Mockito.when(networkAclDaoMock.findById(networkAclListId)).thenReturn(networkACLVOMock); Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(1L);
Original Test Code (click to expand)
@Before public void befoteTest() { PowerMockito.mockStatic(CallContext.class); PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(Mockito.mock(User.class)).when(callContextMock).getCallingUser(); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); Mockito.when(networkAclDaoMock.findById(networkAclListId)).thenReturn(networkACLVOMock); Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(1L); Mockito.when(createNetworkAclCmdMock.getProtocol()).thenReturn("tcp"); Mockito.when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingMockId); Mockito.when(networkMock.getVpcId()).thenReturn(networkMockVpcMockId); Mockito.when(moveNetworkAclItemCmdMock.getUuidRuleBeingMoved()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getUuid()).thenReturn(uuidAclRuleBeingMoved); Mockito.when(aclRuleBeingMovedMock.getAclId()).thenReturn(networkAclMockId); Mockito.when(previousAclRuleMock.getUuid()).thenReturn(previousAclRuleUuid); Mockito.when(nextAclRuleMock.getUuid()).thenReturn(nextAclRuleUuid); Mockito.when(networkAclMock.getVpcId()).thenReturn(networkMockVpcMockId); }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account callingAccount) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.doReturn(callingAccount).when(callContextMock).getCallingAccount(); return callContextMock; }

Mock Clone Instance #cloudstack_MCI_35

Reusable Method

private static CallContext createMockCallContext(Account accountMock) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); return callContextMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_35_1

Test Case Name: validateInputsAndPermissionForUpdateVirtualMachineCommandTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
@@ Mockito.doNothing().when(userVmManagerImpl).validateGuestOsIdForUpdateVirtualMachineCommand(updateVmCommand); - CallContext callContextMock = Mockito.mock(CallContext.class); - Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); + CallContext callContextMock = createMockCallContext(accountMock); ServiceOffering offering = getSvcoffering(512); Mockito.lenient().when(_serviceOfferingDao.findById(Mockito.anyLong(), Mockito.anyLong())).thenReturn((ServiceOfferingVO) offering); Mockito.lenient().doNothing().when(accountManager).checkAccess(accountMock, null, true, userVmVoMock); userVmManagerImpl.validateInputsAndPermissionForUpdateVirtualMachineCommand(updateVmCommand); Mockito.verify(userVmManagerImpl).validateGuestOsIdForUpdateVirtualMachineCommand(updateVmCommand); Mockito.verify(accountManager).checkAccess(callerAccount, null, true, userVmVoMock); @@
Original Test Code (click to expand)
@Test @PrepareForTest(CallContext.class) public void validateInputsAndPermissionForUpdateVirtualMachineCommandTest() { Mockito.doNothing().when(userVmManagerImpl).validateGuestOsIdForUpdateVirtualMachineCommand(updateVmCommand); CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); ServiceOffering offering = getSvcoffering(512); Mockito.lenient().when(_serviceOfferingDao.findById(Mockito.anyLong(), Mockito.anyLong())).thenReturn((ServiceOfferingVO) offering); Mockito.lenient().doNothing().when(accountManager).checkAccess(accountMock, null, true, userVmVoMock); userVmManagerImpl.validateInputsAndPermissionForUpdateVirtualMachineCommand(updateVmCommand); Mockito.verify(userVmManagerImpl).validateGuestOsIdForUpdateVirtualMachineCommand(updateVmCommand); Mockito.verify(accountManager).checkAccess(callerAccount, null, true, userVmVoMock); }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account accountMock) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); return callContextMock; }

Test Case ID #cloudstack_Test_35_2

Test Case Name: testResetVMUserDataVMStateNotStopped(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
--- original +++ refactored @@ public void testResetVMUserDataVMStateNotStopped() { - CallContext callContextMock = Mockito.mock(CallContext.class); - Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); + CallContext callContextMock = createMockCallContext(accountMock); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Running); try { userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) @PrepareForTest(CallContext.class) public void testResetVMUserDataVMStateNotStopped() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Running); try { userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account accountMock) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); return callContextMock; }

Test Case ID #cloudstack_Test_35_3

Test Case Name: testResetVMUserDataDontAcceptBothUserdataAndUserdataId(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
--- original +++ refactored @@ public void testResetVMUserDataDontAcceptBothUserdataAndUserdataId() { - CallContext callContextMock = Mockito.mock(CallContext.class); - Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); + CallContext callContextMock = createMockCallContext(accountMock); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Stopped); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(1L); try { userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) @PrepareForTest(CallContext.class) public void testResetVMUserDataDontAcceptBothUserdataAndUserdataId() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Stopped); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(1L); try { userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account accountMock) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); return callContextMock; }

Test Case ID #cloudstack_Test_35_4

Test Case Name: testResetVMUserDataSuccessResetWithUserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
--- original +++ refactored @@ public void testResetVMUserDataSuccessResetWithUserdata() { - CallContext callContextMock = Mockito.mock(CallContext.class); - Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); + CallContext callContextMock = createMockCallContext(accountMock); UserVmVO userVmVO = new UserVmVO(); userVmVO.setTemplateId(2L); userVmVO.setState(VirtualMachine.State.Stopped); userVmVO.setUserDataId(100L); userVmVO.setUserData("RandomUserdata"); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(null); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); try { doNothing().when(userVmManagerImpl).updateUserData(userVmVO); userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } Assert.assertEquals("testUserdata", userVmVO.getUserData()); Assert.assertEquals(null, userVmVO.getUserDataId()); }
Original Test Code (click to expand)
@Test @PrepareForTest(CallContext.class) public void testResetVMUserDataSuccessResetWithUserdata() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); UserVmVO userVmVO = new UserVmVO(); userVmVO.setTemplateId(2L); userVmVO.setState(VirtualMachine.State.Stopped); userVmVO.setUserDataId(100L); userVmVO.setUserData("RandomUserdata"); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(null); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); try { doNothing().when(userVmManagerImpl).updateUserData(userVmVO); userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } Assert.assertEquals("testUserdata", userVmVO.getUserData()); Assert.assertEquals(null, userVmVO.getUserDataId()); }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account accountMock) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); return callContextMock; }

Test Case ID #cloudstack_Test_35_5

Test Case Name: testResetVMUserDataSuccessResetWithUserdataId(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: callContextMock

Suggested Diff
--- original +++ refactored @@ public void testResetVMUserDataSuccessResetWithUserdataId() { - CallContext callContextMock = Mockito.mock(CallContext.class); - Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); + CallContext callContextMock = createMockCallContext(accountMock); UserVmVO userVmVO = new UserVmVO(); userVmVO.setTemplateId(2L); userVmVO.setState(VirtualMachine.State.Stopped); userVmVO.setUserDataId(100L); userVmVO.setUserData("RandomUserdata"); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserdataId()).thenReturn(1L); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); when(userDataDao.findById(1L)).thenReturn(apiUserDataVO); when(apiUserDataVO.getUserData()).thenReturn("testUserdata"); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); try { doNothing().when(userVmManagerImpl).updateUserData(userVmVO); userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } Assert.assertEquals("testUserdata", userVmVO.getUserData()); Assert.assertEquals(1L, (long) userVmVO.getUserDataId()); }
Original Test Code (click to expand)
@Test @PrepareForTest(CallContext.class) public void testResetVMUserDataSuccessResetWithUserdataId() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); UserVmVO userVmVO = new UserVmVO(); userVmVO.setTemplateId(2L); userVmVO.setState(VirtualMachine.State.Stopped); userVmVO.setUserDataId(100L); userVmVO.setUserData("RandomUserdata"); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserdataId()).thenReturn(1L); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); when(userDataDao.findById(1L)).thenReturn(apiUserDataVO); when(apiUserDataVO.getUserData()).thenReturn("testUserdata"); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); try { doNothing().when(userVmManagerImpl).updateUserData(userVmVO); userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } Assert.assertEquals("testUserdata", userVmVO.getUserData()); Assert.assertEquals(1L, (long) userVmVO.getUserDataId()); }
Reusable Method for MCI (click to expand)
private static CallContext createMockCallContext(Account accountMock) { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); return callContextMock; }

Mock Clone Instance #cloudstack_MCI_36

Reusable Method

private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_36_1

Test Case Name: beforeTest(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: sourceDataMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Before public void beforeTest() { - Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(copyCommandMock.getSrcTO()).thenReturn(sourceDataMock); Mockito.when(copyCommandMock.getDestTO()).thenReturn(destinationDataMock); Mockito.when(changedHost.getId()).thenReturn(changedHostId); Mockito.lenient().when(defaultHost.getId()).thenReturn(defaultHostId); Mockito.when(defaultHost.getDataCenterId()).thenReturn(zoneId); Mockito.when(hostDaoMock.findById(defaultHostId)).thenReturn(defaultHost); Mockito.lenient().when(hostDaoMock.findById(changedHostId)).thenReturn(changedHost); } private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { - Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { - Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); - Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); } @Test public void testSomething() { - Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); + // sourceDataMock is configured in test setup or helper as needed // ... rest of test code ... }
Original Test Code (click to expand)
@Before public void beforeTest() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(copyCommandMock.getSrcTO()).thenReturn(sourceDataMock); Mockito.when(copyCommandMock.getDestTO()).thenReturn(destinationDataMock); Mockito.when(changedHost.getId()).thenReturn(changedHostId); Mockito.lenient().when(defaultHost.getId()).thenReturn(defaultHostId); Mockito.when(defaultHost.getDataCenterId()).thenReturn(zoneId); Mockito.when(hostDaoMock.findById(defaultHostId)).thenReturn(defaultHost); Mockito.lenient().when(hostDaoMock.findById(changedHostId)).thenReturn(changedHost); } private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

Test Case ID #cloudstack_Test_36_2

Test Case Name: getCommandHostDelegationTestCommandIsCopyCommandButSourceDataHypervisorIsNotXenServer(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: sourceDataMock

Suggested Diff
--- original +++ refactored @@ @Test public void getCommandHostDelegationTestCommandIsCopyCommandButSourceDataHypervisorIsNotXenServer() { - Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.Any); + Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.Any); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); } @@
Original Test Code (click to expand)
@Test public void getCommandHostDelegationTestCommandIsCopyCommandButSourceDataHypervisorIsNotXenServer() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.Any); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); } private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

Test Case ID #cloudstack_Test_36_3

Test Case Name: getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerButSourceAndDestinationAreNotNfsObjects(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: sourceDataMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerButSourceAndDestinationAreNotNfsObjects() { - Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); + sourceDataMock = createMockDataTO(Mockito.mock(DataStoreTO.class), null); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); } @@
Original Test Code (click to expand)
private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); } @Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerButSourceAndDestinationAreNotNfsObjects() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

Test Case ID #cloudstack_Test_36_4

Test Case Name: getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsButSourceIsNotSnapshotType(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: sourceDataMock

Suggested Diff
--- original +++ refactored @@ private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { - Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); + sourceDataMock = createMockDataTO(Mockito.mock(NfsTO.class), sourceDataMock.getObjectType()); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } @@ public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsButSourceIsNotSnapshotType() { configureSourceAndDestinationDataMockDataStoreAsNfsToType(); - Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); - Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.VOLUME); + Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); + Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.VOLUME); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); } @@
Original Test Code (click to expand)
@Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsButSourceIsNotSnapshotType() { configureSourceAndDestinationDataMockDataStoreAsNfsToType(); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.VOLUME); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); } private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

Test Case ID #cloudstack_Test_36_5

Test Case Name: getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsAndSourceIsSnapshotTypeButDestinationIsNotTemplateType(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: sourceDataMock

Suggested Diff
@@ private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { - Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); + sourceDataMock = createMockDataTO(Mockito.mock(NfsTO.class), sourceDataMock.getObjectType()); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); - Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); + sourceDataMock = createMockDataTO(sourceDataMock.getDataStore(), DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); } @Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsAndSourceIsSnapshotTypeButDestinationIsNotTemplateType() { configureSourceAndDestinationDataMockDataStoreAsNfsToType(); - Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); - Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); + Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); + sourceDataMock = createMockDataTO(sourceDataMock.getDataStore(), DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.VOLUME); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); }
Original Test Code (click to expand)
private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); } @Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsAndSourceIsSnapshotTypeButDestinationIsNotTemplateType() { configureSourceAndDestinationDataMockDataStoreAsNfsToType(); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.VOLUME); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

Test Case ID #cloudstack_Test_36_6

Test Case Name: getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerButSourceAndDestinationAreNotNfsObjects(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: destinationDataMock

Suggested Diff
@@ Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); - Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); + destinationDataMock = createMockDataTO(Mockito.mock(DataStoreTO.class), null); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); @@
Original Test Code (click to expand)
private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); } @Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerButSourceAndDestinationAreNotNfsObjects() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(DataStoreTO.class)); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

Test Case ID #cloudstack_Test_36_7

Test Case Name: getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsAndSourceIsSnapshotTypeButDestinationIsNotTemplateType(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: destinationDataMock

Suggested Diff
--- original +++ refactored @@ private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); - Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); + destinationDataMock = createMockDataTO(Mockito.mock(NfsTO.class), destinationDataMock.getObjectType()); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); - Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); + destinationDataMock = createMockDataTO(destinationDataMock.getDataStore(), DataObjectType.TEMPLATE); } @Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsAndSourceIsSnapshotTypeButDestinationIsNotTemplateType() { configureSourceAndDestinationDataMockDataStoreAsNfsToType(); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); - Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.VOLUME); + destinationDataMock = createMockDataTO(destinationDataMock.getDataStore(), DataObjectType.VOLUME); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); }
Original Test Code (click to expand)
private void configureSourceAndDestinationDataMockDataStoreAsNfsToType() { Mockito.when(sourceDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); Mockito.when(destinationDataMock.getDataStore()).thenReturn(Mockito.mock(NfsTO.class)); } private void configureSourceHypervisorAsXenServerAndSourceTypeAsSnapshotAndDestinationTypeAsTemplate() { Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.TEMPLATE); } @Test public void getCommandHostDelegationTestCommandIsCopyCommandAndSourceDataHypervisorIsXenServerAndSourceAndDestinationAreNfsObjectsAndSourceIsSnapshotTypeButDestinationIsNotTemplateType() { configureSourceAndDestinationDataMockDataStoreAsNfsToType(); Mockito.when(sourceDataMock.getHypervisorType()).thenReturn(HypervisorType.XenServer); Mockito.when(sourceDataMock.getObjectType()).thenReturn(DataObjectType.SNAPSHOT); Mockito.when(destinationDataMock.getObjectType()).thenReturn(DataObjectType.VOLUME); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommandMock); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(DataStoreTO dataStoreReturn, DataObjectType objectTypeReturn) { DataTO dataTOMock = Mockito.mock(DataTO.class); Mockito.when(dataTOMock.getDataStore()).thenReturn(dataStoreReturn); Mockito.when(dataTOMock.getObjectType()).thenReturn(objectTypeReturn); return dataTOMock; }

Mock Clone Instance #cloudstack_MCI_37

Reusable Method

private static DataTO createMockDataTO(HypervisorType hypervisorType) { DataTO dataTO = Mockito.mock(DataTO.class); Mockito.when(dataTO.getHypervisorType()).thenReturn(hypervisorType); return dataTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_37_1

Test Case Name: getCommandHostDelegationTestCommandIsStorageSubSystemCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: srcData

Suggested Diff
--- original +++ refactored @@ CopyCommand copyCommand = Mockito.mock(CopyCommand.class); - DataTO srcData = Mockito.mock(DataTO.class); + DataTO srcData = createMockDataTO(HypervisorType.XenServer); DataTO dstData = Mockito.mock(DataTO.class); Mockito.when(copyCommand.getSrcTO()).thenReturn(srcData); Mockito.when(copyCommand.getDestTO()).thenReturn(dstData); - Mockito.when(srcData.getHypervisorType()).thenReturn(HypervisorType.XenServer); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommand); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); Mockito.verify(copyCommand).setExecuteInSequence(true); @@
Original Test Code (click to expand)
@Test public void getCommandHostDelegationTestCommandIsStorageSubSystemCommand() { CopyCommand copyCommand = Mockito.mock(CopyCommand.class); DataTO srcData = Mockito.mock(DataTO.class); DataTO dstData = Mockito.mock(DataTO.class); Mockito.when(copyCommand.getSrcTO()).thenReturn(srcData); Mockito.when(copyCommand.getDestTO()).thenReturn(dstData); Mockito.when(srcData.getHypervisorType()).thenReturn(HypervisorType.XenServer); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommand); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); Mockito.verify(copyCommand).setExecuteInSequence(true); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(HypervisorType hypervisorType) { DataTO dataTO = Mockito.mock(DataTO.class); Mockito.when(dataTO.getHypervisorType()).thenReturn(hypervisorType); return dataTO; }

Test Case ID #cloudstack_Test_37_2

Test Case Name: getCommandHostDelegationTestCommandIsNotForXenHypervisor(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\XenServerGuruTest.java)

Mock Object Variable Name: srcData

Suggested Diff
--- original +++ refactored @@ CopyCommand copyCommand = Mockito.mock(CopyCommand.class); - DataTO srcData = Mockito.mock(DataTO.class); + DataTO srcData = createMockDataTO(HypervisorType.Any); Mockito.when(copyCommand.getSrcTO()).thenReturn(srcData); - Mockito.when(srcData.getHypervisorType()).thenReturn(HypervisorType.Any); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommand); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); Mockito.verify(copyCommand, times(0)).setExecuteInSequence(true); @@
Original Test Code (click to expand)
@Test public void getCommandHostDelegationTestCommandIsNotForXenHypervisor() { CopyCommand copyCommand = Mockito.mock(CopyCommand.class); DataTO srcData = Mockito.mock(DataTO.class); Mockito.when(copyCommand.getSrcTO()).thenReturn(srcData); Mockito.when(srcData.getHypervisorType()).thenReturn(HypervisorType.Any); Pair<Boolean, Long> pairHostToExecuteCommand = xenServerGuru.getCommandHostDelegation(defaultHostId, copyCommand); assertPairOfHostToExecuteCommandIsTheDefaultHostId(pairHostToExecuteCommand); Mockito.verify(copyCommand, times(0)).setExecuteInSequence(true); }
Reusable Method for MCI (click to expand)
private static DataTO createMockDataTO(HypervisorType hypervisorType) { DataTO dataTO = Mockito.mock(DataTO.class); Mockito.when(dataTO.getHypervisorType()).thenReturn(hypervisorType); return dataTO; }

Mock Clone Instance #cloudstack_MCI_38

Reusable Method

private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_38_1

Test Case Name: validateCidrsTestValidCidrs(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\firewall\CreateEgressFirewallRuleCmdTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
--- original +++ refactored @@ Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); - Network networkMock = Mockito.mock(Network.class); - Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); - Mockito.doReturn(cidrMock).when(networkMock).getCidr(); + Network networkMock = createMockNetwork(cidrMock); + Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(cidrMock)).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(cidrMock)).thenReturn(false); PowerMockito.when(NetUtils.isNetworkAWithinNetworkB(cidrMock, cidrMock)).thenReturn(true); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class, Mockito.times(2)); NetUtils.isValidIp4Cidr(cidrMock); NetUtils.isValidIp6Cidr(cidrMock); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isNetworkAWithinNetworkB(cidrMock, cidrMock); @@
Original Test Code (click to expand)
@Test public void validateCidrsTestValidCidrs() { ArrayList<String> listMock = new ArrayList<>(); String cidrMock = "10.1.1.0/24"; listMock.add(cidrMock); cmdMock.setSourceCidrList(listMock); cmdMock.setDestCidrList(listMock); long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); Mockito.doReturn(cidrMock).when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(cidrMock)).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(cidrMock)).thenReturn(false); PowerMockito.when(NetUtils.isNetworkAWithinNetworkB(cidrMock, cidrMock)).thenReturn(true); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class, Mockito.times(2)); NetUtils.isValidIp4Cidr(cidrMock); NetUtils.isValidIp6Cidr(cidrMock); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isNetworkAWithinNetworkB(cidrMock, cidrMock); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

Test Case ID #cloudstack_Test_38_2

Test Case Name: validateCidrsTestCidrsBeginningWithWhiteSpace(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\firewall\CreateEgressFirewallRuleCmdTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
--- original +++ refactored @@ Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); - Network networkMock = Mockito.mock(Network.class); - Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); - Mockito.doReturn("10.1.1.0/24").when(networkMock).getCidr(); + Network networkMock = createMockNetwork("10.1.1.0/24"); + Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq("10.1.1.0/24"))).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void validateCidrsTestCidrsBeginningWithWhiteSpace() { ArrayList<String> listMock = new ArrayList<>(); String cidrMock = " 10.1.1.0/24"; listMock.add(cidrMock); cmdMock.setSourceCidrList(listMock); cmdMock.setDestCidrList(listMock); long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); Mockito.doReturn("10.1.1.0/24").when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq("10.1.1.0/24"))).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(Mockito.eq("10.1.1.0/24"))).thenReturn(false); PowerMockito.when(NetUtils.isNetworkAWithinNetworkB(Mockito.eq("10.1.1.0/24"), Mockito.eq("10.1.1.0/24"))).thenReturn(true); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class, Mockito.times(2)); NetUtils.isValidIp4Cidr(Mockito.eq("10.1.1.0/24")); NetUtils.isValidIp6Cidr(Mockito.eq("10.1.1.0/24")); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isNetworkAWithinNetworkB(Mockito.eq("10.1.1.0/24"), Mockito.eq("10.1.1.0/24")); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

Test Case ID #cloudstack_Test_38_3

Test Case Name: validateCidrsTestInvalidSourceCidr(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\firewall\CreateEgressFirewallRuleCmdTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
--- original +++ refactored @@ Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); - Network networkMock = Mockito.mock(Network.class); - Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); - Mockito.doReturn("10.1.1.0/24").when(networkMock).getCidr(); + Network networkMock = createMockNetwork("10.1.1.0/24"); + Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(sourceCidrMock)).thenReturn(false); @@
Original Test Code (click to expand)
@Test(expected = ServerApiException.class) public void validateCidrsTestInvalidSourceCidr() { ArrayList<String> listMock = new ArrayList<>(); String sourceCidrMock = "aaaa"; listMock.add(sourceCidrMock); cmdMock.setSourceCidrList(listMock); cmdMock.setDestCidrList(listMock); long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); Mockito.doReturn("10.1.1.0/24").when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(sourceCidrMock)).thenReturn(false); PowerMockito.when(NetUtils.isValidIp6Cidr(sourceCidrMock)).thenReturn(false); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class, Mockito.times(1)); NetUtils.isValidIp4Cidr(sourceCidrMock); NetUtils.isValidIp6Cidr(sourceCidrMock); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

Test Case ID #cloudstack_Test_38_4

Test Case Name: validateCidrsTestInvalidDestinationCidr(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\firewall\CreateEgressFirewallRuleCmdTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
--- original +++ refactored @@ long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); - Network networkMock = Mockito.mock(Network.class); + Network networkMock = createMockNetwork(sourceCidrMock); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); - Mockito.doReturn(sourceCidrMock).when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(sourceCidrMock))).thenReturn(true); @@
Original Test Code (click to expand)
@Test(expected = ServerApiException.class) public void validateCidrsTestInvalidDestinationCidr() { ArrayList<String> listSourceMock = new ArrayList<>(); String sourceCidrMock = "10.1.1.0/24"; listSourceMock.add(sourceCidrMock); cmdMock.setSourceCidrList(listSourceMock); ArrayList<String> listDestMock = new ArrayList<>(); String destCidrMock = "aaaa"; listDestMock.add(destCidrMock); cmdMock.setDestCidrList(listDestMock); long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); Mockito.doReturn(sourceCidrMock).when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(sourceCidrMock))).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(Mockito.eq(sourceCidrMock))).thenReturn(false); PowerMockito.when(NetUtils.isNetworkAWithinNetworkB(sourceCidrMock, sourceCidrMock)).thenReturn(true); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(destCidrMock))).thenReturn(false); PowerMockito.when(NetUtils.isValidIp6Cidr(Mockito.eq(destCidrMock))).thenReturn(false); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isValidIp4Cidr(sourceCidrMock); NetUtils.isValidIp6Cidr(sourceCidrMock); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isNetworkAWithinNetworkB(sourceCidrMock, sourceCidrMock); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isValidIp4Cidr(destCidrMock); NetUtils.isValidIp6Cidr(destCidrMock); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

Test Case ID #cloudstack_Test_38_5

Test Case Name: validateCidrsTestSourceCidrEqualsAllIp4(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\firewall\CreateEgressFirewallRuleCmdTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
@@ Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); - Network networkMock = Mockito.mock(Network.class); - Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); - Mockito.doReturn(sourceCidrMock).when(networkMock).getCidr(); + Network networkMock = createMockNetwork(sourceCidrMock); + Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(sourceCidrMock))).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void validateCidrsTestSourceCidrEqualsAllIp4() { ArrayList<String> listSourceMock = new ArrayList<>(); String sourceCidrMock = "0.0.0.0/0"; listSourceMock.add(sourceCidrMock); cmdMock.setSourceCidrList(listSourceMock); ArrayList<String> listDestMock = new ArrayList<>(); String destCidrMock = "10.1.1.0/24"; listDestMock.add(destCidrMock); cmdMock.setDestCidrList(listDestMock); long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); Mockito.doReturn(sourceCidrMock).when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(sourceCidrMock))).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(Mockito.eq(sourceCidrMock))).thenReturn(false); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(destCidrMock))).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(Mockito.eq(destCidrMock))).thenReturn(false); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isValidIp4Cidr(sourceCidrMock); NetUtils.isValidIp6Cidr(sourceCidrMock); PowerMockito.verifyStatic(NetUtils.class, Mockito.never()); NetUtils.isNetworkAWithinNetworkB(sourceCidrMock, sourceCidrMock); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isValidIp4Cidr(destCidrMock); NetUtils.isValidIp6Cidr(destCidrMock); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

Test Case ID #cloudstack_Test_38_6

Test Case Name: validateCidrsTestSourceCidrNotWithinNetwork(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\firewall\CreateEgressFirewallRuleCmdTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
--- original +++ refactored @@ Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); - Network networkMock = Mockito.mock(Network.class); + Network networkMock = createMockNetwork(cidrMock); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); - Mockito.doReturn(cidrMock).when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(cidrMock)).thenReturn(true); @@
Original Test Code (click to expand)
@Test(expected = ServerApiException.class) public void validateCidrsTestSourceCidrNotWithinNetwork() { ArrayList<String> listMock = new ArrayList<>(); String cidrMock = "10.1.1.0/24"; listMock.add(cidrMock); cmdMock.setSourceCidrList(listMock); cmdMock.setDestCidrList(listMock); long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); Mockito.doReturn(cidrMock).when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(cidrMock)).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(cidrMock)).thenReturn(false); PowerMockito.when(NetUtils.isNetworkAWithinNetworkB(cidrMock, cidrMock)).thenReturn(false); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class, Mockito.times(1)); NetUtils.isValidIp4Cidr(cidrMock); NetUtils.isValidIp6Cidr(cidrMock); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isNetworkAWithinNetworkB(cidrMock, cidrMock); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

Test Case ID #cloudstack_Test_38_7

Test Case Name: validateCidrsTestNullDestinationCidr(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\firewall\CreateEgressFirewallRuleCmdTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
--- original +++ refactored @@ Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); - Network networkMock = Mockito.mock(Network.class); - Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); - Mockito.doReturn(sourceCidrMock).when(networkMock).getCidr(); + Network networkMock = createMockNetwork(sourceCidrMock); + Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(sourceCidrMock))).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void validateCidrsTestNullDestinationCidr() { ArrayList<String> listSourceMock = new ArrayList<>(); String sourceCidrMock = "10.1.1.0/24"; listSourceMock.add(sourceCidrMock); cmdMock.setSourceCidrList(listSourceMock); long networkIdMock = 1234; Mockito.doReturn(networkIdMock).when(cmdMock).getNetworkId(); Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(networkMock).when(networkServiceMock).getNetwork(networkIdMock); Mockito.doReturn(sourceCidrMock).when(networkMock).getCidr(); PowerMockito.mockStatic(NetUtils.class); PowerMockito.when(NetUtils.isValidIp4Cidr(Mockito.eq(sourceCidrMock))).thenReturn(true); PowerMockito.when(NetUtils.isValidIp6Cidr(Mockito.eq(sourceCidrMock))).thenReturn(false); PowerMockito.when(NetUtils.isNetworkAWithinNetworkB(sourceCidrMock, sourceCidrMock)).thenReturn(true); cmdMock.validateCidrs(); Mockito.verify(cmdMock, Mockito.atLeast(2)).getSourceCidrList(); Mockito.verify(cmdMock).getNetworkId(); Mockito.verify(networkServiceMock).getNetwork(networkIdMock); Mockito.verify(networkMock).getCidr(); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isValidIp4Cidr(sourceCidrMock); NetUtils.isValidIp6Cidr(sourceCidrMock); PowerMockito.verifyStatic(NetUtils.class); NetUtils.isNetworkAWithinNetworkB(sourceCidrMock, sourceCidrMock); PowerMockito.verifyStatic(NetUtils.class, Mockito.never()); NetUtils.isValidIp4Cidr(null); NetUtils.isValidIp6Cidr(null); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(String cidr) { Network networkMock = Mockito.mock(Network.class); Mockito.doReturn(cidr).when(networkMock).getCidr(); return networkMock; }

Mock Clone Instance #cloudstack_MCI_39

Reusable Method

private static Network createMockNetwork(long vpcId) { Network networkMock = Mockito.mock(Network.class); Mockito.when(networkMock.getVpcId()).thenReturn(vpcId); return networkMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_39_1

Test Case Name: createAclListIfNeededTestAclRuleListIdNullAndNetworkWithVpcAndNotAclListYet(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
@@ Mockito.when(createNetworkAclCmdMock.getACLId()).thenReturn(null); long networkId = 1L; Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(networkId); - Network networkMock = Mockito.mock(Network.class); - Mockito.when(networkMock.getVpcId()).thenReturn(12L); + Network networkMock = createMockNetwork(12L); Mockito.when(networkMock.getNetworkACLId()).thenReturn(null); Mockito.doReturn(networkMock).when(networkModelMock).getNetwork(networkId); Long expectedAclListId = 15L; Mockito.doReturn(expectedAclListId).when(networkAclServiceImpl).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); Long aclIdReturned = networkAclServiceImpl.createAclListIfNeeded(createNetworkAclCmdMock); Assert.assertEquals(expectedAclListId, aclIdReturned); Mockito.verify(networkAclServiceImpl).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); @@
Original Test Code (click to expand)
@Test public void createAclListIfNeededTestAclRuleListIdNullAndNetworkWithVpcAndNotAclListYet() { Mockito.when(createNetworkAclCmdMock.getACLId()).thenReturn(null); long networkId = 1L; Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(networkId); Network networkMock = Mockito.mock(Network.class); Mockito.when(networkMock.getVpcId()).thenReturn(12L); Mockito.when(networkMock.getNetworkACLId()).thenReturn(null); Mockito.doReturn(networkMock).when(networkModelMock).getNetwork(networkId); Long expectedAclListId = 15L; Mockito.doReturn(expectedAclListId).when(networkAclServiceImpl).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); Long aclIdReturned = networkAclServiceImpl.createAclListIfNeeded(createNetworkAclCmdMock); Assert.assertEquals(expectedAclListId, aclIdReturned); Mockito.verify(networkAclServiceImpl).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long vpcId) { Network networkMock = Mockito.mock(Network.class); Mockito.when(networkMock.getVpcId()).thenReturn(vpcId); return networkMock; }

Test Case ID #cloudstack_Test_39_2

Test Case Name: createAclListIfNeededTestAclRuleListIdNullAndNetworkWithVpcAndAclListAlreadyCreated(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\vpc\NetworkACLServiceImplTest.java)

Mock Object Variable Name: networkMock

Suggested Diff
--- original +++ refactored @@ Mockito.when(createNetworkAclCmdMock.getACLId()).thenReturn(null); long networkId = 1L; Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(networkId); - Network networkMock = Mockito.mock(Network.class); - ; - Mockito.when(networkMock.getVpcId()).thenReturn(12L); + Network networkMock = createMockNetwork(12L); Long expectedAclListId = 15L; Mockito.when(networkMock.getNetworkACLId()).thenReturn(expectedAclListId); Mockito.doReturn(networkMock).when(networkModelMock).getNetwork(networkId); Mockito.doReturn(16L).when(networkAclServiceImpl).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); Long aclIdReturned = networkAclServiceImpl.createAclListIfNeeded(createNetworkAclCmdMock); Assert.assertEquals(expectedAclListId, aclIdReturned); Mockito.verify(networkAclServiceImpl, Mockito.times(0)).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); @@
Original Test Code (click to expand)
@Test public void createAclListIfNeededTestAclRuleListIdNullAndNetworkWithVpcAndAclListAlreadyCreated() { Mockito.when(createNetworkAclCmdMock.getACLId()).thenReturn(null); long networkId = 1L; Mockito.when(createNetworkAclCmdMock.getNetworkId()).thenReturn(networkId); Network networkMock = Mockito.mock(Network.class); ; Mockito.when(networkMock.getVpcId()).thenReturn(12L); Long expectedAclListId = 15L; Mockito.when(networkMock.getNetworkACLId()).thenReturn(expectedAclListId); Mockito.doReturn(networkMock).when(networkModelMock).getNetwork(networkId); Mockito.doReturn(16L).when(networkAclServiceImpl).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); Long aclIdReturned = networkAclServiceImpl.createAclListIfNeeded(createNetworkAclCmdMock); Assert.assertEquals(expectedAclListId, aclIdReturned); Mockito.verify(networkAclServiceImpl, Mockito.times(0)).createAclListForNetworkAndReturnAclListId(createNetworkAclCmdMock, networkMock); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long vpcId) { Network networkMock = Mockito.mock(Network.class); Mockito.when(networkMock.getVpcId()).thenReturn(vpcId); return networkMock; }

Mock Clone Instance #cloudstack_MCI_40

Reusable Method

private static Network createMockNetwork(long dataCenterIdReturn) { Network network = Mockito.mock(Network.class); Mockito.when(network.getDataCenterId()).thenReturn(dataCenterIdReturn); Mockito.when(network.getVpcId()).thenReturn(null); return network; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_40_1

Test Case Name: testCheckNetworkIpv6UpgradeForNoIpv6Vlan(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\Ipv6ServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); - Network network = Mockito.mock(Network.class); - Mockito.when(network.getDataCenterId()).thenReturn(zoneId); - Mockito.when(network.getVpcId()).thenReturn(null); + Network network = createMockNetwork(zoneId); Mockito.when(ipAddressDao.listByAssociatedNetwork(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(List.of(Mockito.mock(IPAddressVO.class))); VlanVO vlanVO = Mockito.mock(VlanVO.class); Mockito.when(vlanVO.getVlanTag()).thenReturn(vlan); Mockito.when(vlanDao.findById(Mockito.anyLong())).thenReturn(vlanVO); Mockito.when(vlanDao.listIpv6RangeByZoneIdAndVlanId(Mockito.anyLong(), Mockito.anyString())).thenReturn(new ArrayList<>()); try { ipv6Service.checkNetworkIpv6Upgrade(network); Assert.fail("No InsufficientAddressCapacityException"); } catch (InsufficientAddressCapacityException | ResourceAllocationException ignored) { } @@
Original Test Code (click to expand)
@Test public void testCheckNetworkIpv6UpgradeForNoIpv6Vlan() { final long zoneId = 1L; Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); Network network = Mockito.mock(Network.class); Mockito.when(network.getDataCenterId()).thenReturn(zoneId); Mockito.when(network.getVpcId()).thenReturn(null); Mockito.when(ipAddressDao.listByAssociatedNetwork(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(List.of(Mockito.mock(IPAddressVO.class))); VlanVO vlanVO = Mockito.mock(VlanVO.class); Mockito.when(vlanVO.getVlanTag()).thenReturn(vlan); Mockito.when(vlanDao.findById(Mockito.anyLong())).thenReturn(vlanVO); Mockito.when(vlanDao.listIpv6RangeByZoneIdAndVlanId(Mockito.anyLong(), Mockito.anyString())).thenReturn(new ArrayList<>()); try { ipv6Service.checkNetworkIpv6Upgrade(network); Assert.fail("No InsufficientAddressCapacityException"); } catch (InsufficientAddressCapacityException | ResourceAllocationException ignored) { } }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long dataCenterIdReturn) { Network network = Mockito.mock(Network.class); Mockito.when(network.getDataCenterId()).thenReturn(dataCenterIdReturn); Mockito.when(network.getVpcId()).thenReturn(null); return network; }

Test Case ID #cloudstack_Test_40_2

Test Case Name: testCheckNetworkIpv6UpgradeForNetwork(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\Ipv6ServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); - Network network = Mockito.mock(Network.class); - Mockito.when(network.getDataCenterId()).thenReturn(zoneId); - Mockito.when(network.getVpcId()).thenReturn(null); + Network network = createMockNetwork(zoneId); Mockito.when(ipAddressDao.listByAssociatedNetwork(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(List.of(Mockito.mock(IPAddressVO.class))); VlanVO vlanVO = Mockito.mock(VlanVO.class); Mockito.when(vlanVO.getVlanTag()).thenReturn(vlan); Mockito.when(vlanDao.findById(Mockito.anyLong())).thenReturn(vlanVO); Mockito.when(vlanDao.listIpv6RangeByZoneIdAndVlanId(zoneId, vlan)).thenReturn(List.of(vlanVO)); try { ipv6Service.checkNetworkIpv6Upgrade(network); } catch (InsufficientAddressCapacityException | ResourceAllocationException e) { throw new RuntimeException(e); } @@
Original Test Code (click to expand)
@Test public void testCheckNetworkIpv6UpgradeForNetwork() { final long zoneId = 1L; Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); Network network = Mockito.mock(Network.class); Mockito.when(network.getDataCenterId()).thenReturn(zoneId); Mockito.when(network.getVpcId()).thenReturn(null); Mockito.when(ipAddressDao.listByAssociatedNetwork(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(List.of(Mockito.mock(IPAddressVO.class))); VlanVO vlanVO = Mockito.mock(VlanVO.class); Mockito.when(vlanVO.getVlanTag()).thenReturn(vlan); Mockito.when(vlanDao.findById(Mockito.anyLong())).thenReturn(vlanVO); Mockito.when(vlanDao.listIpv6RangeByZoneIdAndVlanId(zoneId, vlan)).thenReturn(List.of(vlanVO)); try { ipv6Service.checkNetworkIpv6Upgrade(network); } catch (InsufficientAddressCapacityException | ResourceAllocationException e) { throw new RuntimeException(e); } }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long dataCenterIdReturn) { Network network = Mockito.mock(Network.class); Mockito.when(network.getDataCenterId()).thenReturn(dataCenterIdReturn); Mockito.when(network.getVpcId()).thenReturn(null); return network; }

Mock Clone Instance #cloudstack_MCI_41

Reusable Method

public class MockNetwork { public static Network createMockNetwork(String ip6Gateway) { Network network = mock(Network.class); Mockito.when(network.getIp6Gateway()).thenReturn(ip6Gateway); return network; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_41_1

Test Case Name: setTestIsIpEqualsGatewayOrNetworkOfferingsEmpty(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\IpAddressManagerTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ private Network setTestIsIpEqualsGatewayOrNetworkOfferingsEmpty(long networkOfferingId, String gateway, String ip6Gateway, String cidr, List<Service> services) { - Network network = mock(Network.class); - Mockito.when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); - Mockito.when(network.getGateway()).thenReturn(gateway); - Mockito.when(network.getIp6Gateway()).thenReturn(ip6Gateway); - Mockito.when(network.getCidr()).thenReturn(cidr); + Network network = MockNetwork.createMockNetwork(ip6Gateway); + Mockito.when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); + Mockito.when(network.getGateway()).thenReturn(gateway); + Mockito.when(network.getCidr()).thenReturn(cidr); Mockito.doReturn(services).when(networkModel).listNetworkOfferingServices(Mockito.anyLong()); return network; }
Original Test Code (click to expand)
private Network setTestIsIpEqualsGatewayOrNetworkOfferingsEmpty(long networkOfferingId, String gateway, String ip6Gateway, String cidr, List<Service> services) { Network network = mock(Network.class); Mockito.when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); Mockito.when(network.getGateway()).thenReturn(gateway); Mockito.when(network.getIp6Gateway()).thenReturn(ip6Gateway); Mockito.when(network.getCidr()).thenReturn(cidr); Mockito.doReturn(services).when(networkModel).listNetworkOfferingServices(Mockito.anyLong()); return network; }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(String ip6Gateway) { Network network = mock(Network.class); Mockito.when(network.getIp6Gateway()).thenReturn(ip6Gateway); return network; } }

Test Case ID #cloudstack_Test_41_2

Test Case Name: setNICIPv6AddressTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\Ipv6AddressManagerTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ NicProfile nic = new NicProfile(); - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetwork("2001:db8:100::1"); DataCenter dc = mock(DataCenter.class); nic.setMacAddress("1e:00:b1:00:0a:f6"); - Mockito.when(network.getIp6Cidr()).thenReturn("2001:db8:100::/64"); - Mockito.when(network.getIp6Gateway()).thenReturn("2001:db8:100::1"); + Mockito.when(network.getIp6Cidr()).thenReturn("2001:db8:100::/64"); Mockito.when(networkModel.getNetworkIp6Dns(network, dc)).thenReturn(new Pair<>("2001:db8::53:1", "2001:db8::53:2")); String expected = "2001:db8:100:0:1c00:b1ff:fe00:af6"; ip6Manager.setNicIp6Address(nic, dc, network); Assert.assertEquals(expected, nic.getIPv6Address()); @@
Original Test Code (click to expand)
@Test public void setNICIPv6AddressTest() throws InsufficientAddressCapacityException { NicProfile nic = new NicProfile(); Network network = mock(Network.class); DataCenter dc = mock(DataCenter.class); nic.setMacAddress("1e:00:b1:00:0a:f6"); Mockito.when(network.getIp6Cidr()).thenReturn("2001:db8:100::/64"); Mockito.when(network.getIp6Gateway()).thenReturn("2001:db8:100::1"); Mockito.when(networkModel.getNetworkIp6Dns(network, dc)).thenReturn(new Pair<>("2001:db8::53:1", "2001:db8::53:2")); String expected = "2001:db8:100:0:1c00:b1ff:fe00:af6"; ip6Manager.setNicIp6Address(nic, dc, network); Assert.assertEquals(expected, nic.getIPv6Address()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(String ip6Gateway) { Network network = mock(Network.class); Mockito.when(network.getIp6Gateway()).thenReturn(ip6Gateway); return network; } }

Mock Clone Instance #cloudstack_MCI_42

Reusable Method

private static Network createMockNetwork(Long networkId) { Network network = Mockito.mock(Network.class); Mockito.when(network.getId()).thenReturn(networkId); return network; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_42_1

Test Case Name: testNewAssignPublicIpv6ToNetwork(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\Ipv6ServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ Mockito.when(nic.getMacAddress()).thenReturn(macAddress); Mockito.when(nic.getId()).thenReturn(nicId); - Network network = Mockito.mock(Network.class); - Mockito.when(network.getId()).thenReturn(networkId); + Network network = createMockNetwork(networkId); prepareMocksForPublicIpv6(false); Nic assignedNic; try (TransactionLegacy txn = TransactionLegacy.open("testNewPreAllocateIpv6SubnetForNetwork")) { assignedNic = ipv6Service.assignPublicIpv6ToNetwork(network, nic); } Assert.assertEquals(ipv6Address, assignedNic.getIPv6Address()); Assert.assertEquals(gateway, assignedNic.getIPv6Gateway()); Assert.assertEquals(cidr, assignedNic.getIPv6Cidr()); }
Original Test Code (click to expand)
@Test @DB public void testNewAssignPublicIpv6ToNetwork() { NicVO nic = Mockito.mock(NicVO.class); Mockito.when(nic.getIPv6Address()).thenReturn(null); Mockito.when(nic.getBroadcastUri()).thenReturn(URI.create(vlan)); Mockito.when(nic.getMacAddress()).thenReturn(macAddress); Mockito.when(nic.getId()).thenReturn(nicId); Network network = Mockito.mock(Network.class); Mockito.when(network.getId()).thenReturn(networkId); prepareMocksForPublicIpv6(false); Nic assignedNic; try (TransactionLegacy txn = TransactionLegacy.open("testNewPreAllocateIpv6SubnetForNetwork")) { assignedNic = ipv6Service.assignPublicIpv6ToNetwork(network, nic); } Assert.assertEquals(ipv6Address, assignedNic.getIPv6Address()); Assert.assertEquals(gateway, assignedNic.getIPv6Gateway()); Assert.assertEquals(cidr, assignedNic.getIPv6Cidr()); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(Long networkId) { Network network = Mockito.mock(Network.class); Mockito.when(network.getId()).thenReturn(networkId); return network; }

Test Case ID #cloudstack_Test_42_2

Test Case Name: testFromPlaceholderAssignPublicIpv6ToNetwork(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\Ipv6ServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ Mockito.when(nic.getBroadcastUri()).thenReturn(URI.create(vlan)); Mockito.when(nic.getId()).thenReturn(nicId); - Network network = Mockito.mock(Network.class); - Mockito.when(network.getId()).thenReturn(networkId); + Network network = createMockNetwork(networkId); prepareMocksForPublicIpv6(true); Nic assignedNic = ipv6Service.assignPublicIpv6ToNetwork(network, nic); Assert.assertEquals(ipv6Address, assignedNic.getIPv6Address()); Assert.assertEquals(gateway, assignedNic.getIPv6Gateway()); Assert.assertEquals(cidr, assignedNic.getIPv6Cidr()); } @@
Original Test Code (click to expand)
@Test public void testFromPlaceholderAssignPublicIpv6ToNetwork() { NicVO nic = Mockito.mock(NicVO.class); Mockito.when(nic.getIPv6Address()).thenReturn(null); Mockito.when(nic.getBroadcastUri()).thenReturn(URI.create(vlan)); Mockito.when(nic.getId()).thenReturn(nicId); Network network = Mockito.mock(Network.class); Mockito.when(network.getId()).thenReturn(networkId); prepareMocksForPublicIpv6(true); Nic assignedNic = ipv6Service.assignPublicIpv6ToNetwork(network, nic); Assert.assertEquals(ipv6Address, assignedNic.getIPv6Address()); Assert.assertEquals(gateway, assignedNic.getIPv6Gateway()); Assert.assertEquals(cidr, assignedNic.getIPv6Cidr()); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(Long networkId) { Network network = Mockito.mock(Network.class); Mockito.when(network.getId()).thenReturn(networkId); return network; }

Mock Clone Instance #cloudstack_MCI_43

Reusable Method

public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_43_1

Test Case Name: createSharedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ public void createSharedNetworkTest() { - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); Vlan vlan = mock(Vlan.class); AccountVO accountVO = mock(AccountVO.class); TungstenAnswer createTungstenSharedNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer addNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); HostVO hostVO = mock(HostVO.class); Answer answer = mock(Answer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); ApiObjectBase apiObjectBase = mock(ApiObjectBase.class); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenSharedNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(createTungstenSharedNetworkAnswer.getResult()).thenReturn(true); when(addNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); + when(network.getMode()).thenReturn(Networks.Mode.Dhcp); + when(network.getCidr()).thenReturn("192.168.100.0/24"); when(vlan.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlan.getVlanGateway()).thenReturn("192.168.100.1"); when(vlan.getIp6Gateway()).thenReturn("fd00::1"); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(anyString())).thenReturn(hostVO); when(agentMgr.easySend(anyLong(), any(SetupTungstenVRouterCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); when(vlan.getIp6Cidr()).thenReturn("fd00::1/64"); when(vlan.getIp6Range()).thenReturn("fd00::100-fd00::200"); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.1.150"); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); when(createTungstenSharedNetworkAnswer.getApiObjectBase()).thenReturn(apiObjectBase); when(apiObjectBase.getQualifiedName()).thenReturn(List.of("network")); when(tungstenProviderVO.getGateway()).thenReturn("192.168.100.1"); assertTrue(tungstenService.createSharedNetwork(network, vlan)); } @@
Original Test Code (click to expand)
@Test public void createSharedNetworkTest() { Network network = mock(Network.class); Vlan vlan = mock(Vlan.class); AccountVO accountVO = mock(AccountVO.class); TungstenAnswer createTungstenSharedNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer addNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); HostVO hostVO = mock(HostVO.class); Answer answer = mock(Answer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); ApiObjectBase apiObjectBase = mock(ApiObjectBase.class); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenSharedNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(createTungstenSharedNetworkAnswer.getResult()).thenReturn(true); when(addNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getCidr()).thenReturn("192.168.100.0/24"); when(vlan.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlan.getVlanGateway()).thenReturn("192.168.100.1"); when(vlan.getIp6Gateway()).thenReturn("fd00::1"); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(anyString())).thenReturn(hostVO); when(agentMgr.easySend(anyLong(), any(SetupTungstenVRouterCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); when(vlan.getIp6Cidr()).thenReturn("fd00::1/64"); when(vlan.getIp6Range()).thenReturn("fd00::100-fd00::200"); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.1.150"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); when(createTungstenSharedNetworkAnswer.getApiObjectBase()).thenReturn(apiObjectBase); when(apiObjectBase.getQualifiedName()).thenReturn(List.of("network")); when(tungstenProviderVO.getGateway()).thenReturn("192.168.100.1"); assertTrue(tungstenService.createSharedNetwork(network, vlan)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_2

Test Case Name: prepareMigrationTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ NicProfile nic = mock(NicProfile.class); - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Public); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); @@
Original Test Code (click to expand)
@Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_3

Test Case Name: testDeallocate(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test public void testDeallocate() { - final Network network = mock(Network.class); + final Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); - when(network.getDataCenterId()).thenReturn(1L); + when(network.getDataCenterId()).thenReturn(1L); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); guru.deallocate(network, nicProfile, virtualMachineProfile); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong()); } @@
Original Test Code (click to expand)
@Test public void testDeallocate() { final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(network.getDataCenterId()).thenReturn(1L); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); guru.deallocate(network, nicProfile, virtualMachineProfile); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_4

Test Case Name: testDeallocateWithException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(new IllegalArgumentException()); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); - final Network network = mock(Network.class); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); + final Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); guru.deallocate(network, nicProfile, virtualMachineProfile); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testDeallocateWithException() { final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(new IllegalArgumentException()); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); guru.deallocate(network, nicProfile, virtualMachineProfile); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_5

Test Case Name: testImplementGuestNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ - final Network network = mock(Network.class); + final Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(network)).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new LogicalRouter(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "192.168.1.100")); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenService.allocateDnsIpAddress(any(Network.class), any(), anyString())).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(SetTungstenNetworkGatewayCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testImplementGuestNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(network)).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new LogicalRouter(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "192.168.1.100")); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenService.allocateDnsIpAddress(any(Network.class), any(), anyString())).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(SetTungstenNetworkGatewayCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_6

Test Case Name: testImplementSharedNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test public void testImplementSharedNetwork() { - final Network network = mock(Network.class); + final Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); when(vlanDao.listVlansByNetworkId(anyLong())).thenReturn(List.of(new VlanVO())); when(tungstenService.createSharedNetwork(any(Network.class), any(VlanVO.class))).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); } @@
Original Test Code (click to expand)
@Test public void testImplementSharedNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); when(vlanDao.listVlansByNetworkId(anyLong())).thenReturn(List.of(new VlanVO())); when(tungstenService.createSharedNetwork(any(Network.class), any(VlanVO.class))).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_7

Test Case Name: testImplementWithException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ public void testImplementWithException() { - final Network network = mock(Network.class); + final Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getState()).thenReturn(Network.State.Implementing); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(any(Network.class))).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new IOException())); guru.implement(network, offering, deployDestination, reservationContext); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testImplementWithException() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getState()).thenReturn(Network.State.Implementing); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(any(Network.class))).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new IOException())); guru.implement(network, offering, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_8

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ final NicProfile nic = mock(NicProfile.class); - final Network network = mock(Network.class); + final Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_9

Test Case Name: testPrepareMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ final NicProfile nic = mock(NicProfile.class); - final Network network = mock(Network.class); + final Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Guest); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_10

Test Case Name: addManagementNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: managementNetwork

Suggested Diff
--- original +++ refactored @@ HostPodVO hostPodVO = mock(HostPodVO.class); - Network managementNetwork = mock(Network.class); + Network managementNetwork = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Management); TungstenAnswer addTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); DataCenterIpAddressVO dataCenterIpAddressVO = mock(DataCenterIpAddressVO.class); when(hostPodVO.getDescription()).thenReturn("192.168.100.100-192.168.100.200"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); - when(managementNetwork.getCidr()).thenReturn("192.168.100.0/24"); + when(managementNetwork.getCidr()).thenReturn("192.168.100.0/24"); - when(managementNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(dataCenterIpAddressDao.listByPodIdDcIdIpAddress(anyLong(), anyLong(), anyString())).thenReturn(List.of(dataCenterIpAddressVO)); when(dataCenterIpAddressDao.mark(anyLong(), anyLong(), anyString())).thenReturn(true); assertTrue(tungstenService.addManagementNetworkSubnet(hostPodVO)); @@
Original Test Code (click to expand)
@Test public void addManagementNetworkSubnetTest() { HostPodVO hostPodVO = mock(HostPodVO.class); Network managementNetwork = mock(Network.class); TungstenAnswer addTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); DataCenterIpAddressVO dataCenterIpAddressVO = mock(DataCenterIpAddressVO.class); when(hostPodVO.getDescription()).thenReturn("192.168.100.100-192.168.100.200"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(managementNetwork.getCidr()).thenReturn("192.168.100.0/24"); when(managementNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(dataCenterIpAddressDao.listByPodIdDcIdIpAddress(anyLong(), anyLong(), anyString())).thenReturn(List.of(dataCenterIpAddressVO)); when(dataCenterIpAddressDao.mark(anyLong(), anyLong(), anyString())).thenReturn(true); assertTrue(tungstenService.addManagementNetworkSubnet(hostPodVO)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_11

Test Case Name: preparePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Public); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); @@
Original Test Code (click to expand)
@Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_12

Test Case Name: removeManagementNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: managementNetwork

Suggested Diff
--- original +++ refactored @@ HostPodVO hostPodVO = mock(HostPodVO.class); - Network managementNetwork = mock(Network.class); + Network managementNetwork = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Management); TungstenAnswer removeTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); DataCenterIpAddressVO dataCenterIpAddressVO = mock(DataCenterIpAddressVO.class); when(hostPodVO.getDescription()).thenReturn("192.168.100.100-192.168.100.200"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(removeTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(removeTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); - when(managementNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(dataCenterIpAddressDao.listByPodIdDcIdIpAddress(anyLong(), anyLong(), anyString())).thenReturn(List.of(dataCenterIpAddressVO)); assertTrue(tungstenService.removeManagementNetworkSubnet(hostPodVO)); verify(dataCenterIpAddressDao, times(1)).releasePodIpAddress(anyLong()); @@
Original Test Code (click to expand)
@Test public void removeManagementNetworkSubnetTest() { HostPodVO hostPodVO = mock(HostPodVO.class); Network managementNetwork = mock(Network.class); TungstenAnswer removeTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); DataCenterIpAddressVO dataCenterIpAddressVO = mock(DataCenterIpAddressVO.class); when(hostPodVO.getDescription()).thenReturn("192.168.100.100-192.168.100.200"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(removeTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(removeTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(managementNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(dataCenterIpAddressDao.listByPodIdDcIdIpAddress(anyLong(), anyLong(), anyString())).thenReturn(List.of(dataCenterIpAddressVO)); assertTrue(tungstenService.removeManagementNetworkSubnet(hostPodVO)); verify(dataCenterIpAddressDao, times(1)).releasePodIpAddress(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_13

Test Case Name: prepareManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Management); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); } @@
Original Test Code (click to expand)
@Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_14

Test Case Name: prepareWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ public void prepareWithExceptionTest() throws ConcurrentOperationException { - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Management); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void prepareWithExceptionTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_15

Test Case Name: addPublicNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
--- original +++ refactored @@ VlanVO vlanVO = mock(VlanVO.class); - Network publicNetwork = mock(Network.class); + Network publicNetwork = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Public); TungstenAnswer addTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(vlanVO.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlanVO.getVlanGateway()).thenReturn("192.168.100.1"); when(vlanVO.getVlanNetmask()).thenReturn("255.255.255.0"); - when(publicNetwork.getCidr()).thenReturn("192.168.100.0/24"); + when(publicNetwork.getCidr()).thenReturn("192.168.100.0/24"); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); - when(createTungstenPolicyAnswer.getResult()).thenReturn(true); - when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); - when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); - when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); - when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); + when(createTungstenPolicyAnswer.getResult()).thenReturn(true); + when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); + when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); + when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); assertTrue(tungstenService.addPublicNetworkSubnet(vlanVO)); @@
Original Test Code (click to expand)
@Test public void addPublicNetworkSubnetTest() { VlanVO vlanVO = mock(VlanVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer addTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(vlanVO.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlanVO.getVlanGateway()).thenReturn("192.168.100.1"); when(vlanVO.getVlanNetmask()).thenReturn("255.255.255.0"); when(publicNetwork.getCidr()).thenReturn("192.168.100.0/24"); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); assertTrue(tungstenService.addPublicNetworkSubnet(vlanVO)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_16

Test Case Name: releasePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Public); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Original Test Code (click to expand)
@Test public void releasePublicNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_17

Test Case Name: releaseManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Management); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); } @@
Original Test Code (click to expand)
@Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_18

Test Case Name: removePublicNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
--- original +++ refactored @@ VlanVO vlanVO = mock(VlanVO.class); - Network publicNetwork = mock(Network.class); + Network publicNetwork = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Public); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(removeTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(removeTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); - when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); assertTrue(tungstenService.removePublicNetworkSubnet(vlanVO)); verify(ipAddressDao, times(1)).unassignIpAddress(anyLong()); @@
Original Test Code (click to expand)
@Test public void removePublicNetworkSubnetTest() { VlanVO vlanVO = mock(VlanVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(removeTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(removeTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); assertTrue(tungstenService.removePublicNetworkSubnet(vlanVO)); verify(ipAddressDao, times(1)).unassignIpAddress(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Test Case ID #cloudstack_Test_43_19

Test Case Name: releaseWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithTrafficType(Networks.TrafficType.Management); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); - when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); } @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockNetwork { /** * Creates a mock Network with stubbed getTrafficType(). * @param trafficType the Networks.TrafficType to return from getTrafficType() * @return a mock Network with getTrafficType() stubbed */ public static Network createMockNetworkWithTrafficType(Networks.TrafficType trafficType) { Network network = mock(Network.class); when(network.getTrafficType()).thenReturn(trafficType); return network; } }

Mock Clone Instance #cloudstack_MCI_44

Reusable Method

public class MockNetwork { public static Network createMockNetworkWithGuestType(Network.GuestType guestType) { Network network = mock(Network.class); when(network.getGuestType()).thenReturn(guestType); return network; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_44_1

Test Case Name: addTungstenNicSecondaryIpAddressTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ NicSecondaryIp nicSecondaryIp = mock(NicSecondaryIp.class); - Network network = mock(Network.class); DataCenter dataCenter = mock(DataCenter.class); Nic nic = mock(Nic.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); SecurityGroupRuleVO securityGroupRuleVO = mock(SecurityGroupRuleVO.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer addTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(NicSecondaryIp.class), anyLong())).thenReturn(nicSecondaryIp); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(entityMgr.findById(eq(Nic.class), anyLong())).thenReturn(nic); when(nicSecondaryIp.getIp4Address()).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(addTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(addTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); - when(network.getGuestType()).thenReturn(Network.GuestType.Shared); + Network network = MockNetwork.createMockNetworkWithGuestType(Network.GuestType.Shared); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); when(securityGroupRuleDao.listByAllowedSecurityGroupId(anyLong())).thenReturn(List.of(securityGroupRuleVO)); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(securityGroupRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); assertTrue(tungstenService.addTungstenNicSecondaryIpAddress(1L)); @@
Original Test Code (click to expand)
@Test public void addTungstenNicSecondaryIpAddressTest() { NicSecondaryIp nicSecondaryIp = mock(NicSecondaryIp.class); Network network = mock(Network.class); DataCenter dataCenter = mock(DataCenter.class); Nic nic = mock(Nic.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); SecurityGroupRuleVO securityGroupRuleVO = mock(SecurityGroupRuleVO.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer addTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(NicSecondaryIp.class), anyLong())).thenReturn(nicSecondaryIp); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(entityMgr.findById(eq(Nic.class), anyLong())).thenReturn(nic); when(nicSecondaryIp.getIp4Address()).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(addTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(addTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); when(securityGroupRuleDao.listByAllowedSecurityGroupId(anyLong())).thenReturn(List.of(securityGroupRuleVO)); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(securityGroupRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); assertTrue(tungstenService.addTungstenNicSecondaryIpAddress(1L)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetworkWithGuestType(Network.GuestType guestType) { Network network = mock(Network.class); when(network.getGuestType()).thenReturn(guestType); return network; } }

Test Case ID #cloudstack_Test_44_2

Test Case Name: removeTungstenNicSecondaryIpAddressTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ NicSecondaryIpVO nicSecondaryIpVO = mock(NicSecondaryIpVO.class); - Network network = mock(Network.class); + Network network = MockNetwork.createMockNetworkWithGuestType(Network.GuestType.Shared); DataCenter dataCenter = mock(DataCenter.class); TungstenAnswer removeTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(removeTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(removeTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); - when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(tungstenSecurityGroupRuleDao.listByRuleTarget(anyString())).thenReturn(List.of(tungstenSecurityGroupRuleVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenSecurityGroupRuleDao.expunge(anyLong())).thenReturn(true); when(nicSecondaryIpVO.getIp4Address()).thenReturn("192.168.100.100"); assertTrue(tungstenService.removeTungstenNicSecondaryIpAddress(nicSecondaryIpVO)); @@
Original Test Code (click to expand)
@Test public void removeTungstenNicSecondaryIpAddressTest() { NicSecondaryIpVO nicSecondaryIpVO = mock(NicSecondaryIpVO.class); Network network = mock(Network.class); DataCenter dataCenter = mock(DataCenter.class); TungstenAnswer removeTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(removeTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(removeTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(tungstenSecurityGroupRuleDao.listByRuleTarget(anyString())).thenReturn(List.of(tungstenSecurityGroupRuleVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenSecurityGroupRuleDao.expunge(anyLong())).thenReturn(true); when(nicSecondaryIpVO.getIp4Address()).thenReturn("192.168.100.100"); assertTrue(tungstenService.removeTungstenNicSecondaryIpAddress(nicSecondaryIpVO)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetworkWithGuestType(Network.GuestType guestType) { Network network = mock(Network.class); when(network.getGuestType()).thenReturn(guestType); return network; } }

Test Case ID #cloudstack_Test_44_3

Test Case Name: testTrashSharedNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void testTrashSharedNetwork() { - final Network network = mock(Network.class); + final Network network = MockNetwork.createMockNetworkWithGuestType(Network.GuestType.Shared); final NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); final TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); final HostVO hostVO = mock(HostVO.class); - when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(any())).thenReturn(hostVO); guru.trash(network, offering); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(ClearTungstenNetworkGatewayCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong()); verify(tungstenService, times(1)).deallocateDnsIpAddress(any(), any(), anyString()); verify(agentMgr, times(1)).easySend(any(), any(SetupTungstenVRouterCommand.class)); verify(networkDetailsDao, times(1)).expunge(anyLong()); } @@
Original Test Code (click to expand)
@Test public void testTrashSharedNetwork() { final Network network = mock(Network.class); final NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); final TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); final HostVO hostVO = mock(HostVO.class); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(any())).thenReturn(hostVO); guru.trash(network, offering); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(ClearTungstenNetworkGatewayCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong()); verify(tungstenService, times(1)).deallocateDnsIpAddress(any(), any(), anyString()); verify(agentMgr, times(1)).easySend(any(), any(SetupTungstenVRouterCommand.class)); verify(networkDetailsDao, times(1)).expunge(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetworkWithGuestType(Network.GuestType guestType) { Network network = mock(Network.class); when(network.getGuestType()).thenReturn(guestType); return network; } }

Mock Clone Instance #cloudstack_MCI_45

Reusable Method

// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_45_1

Test Case Name: canHandleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void canHandleSuccessTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network.Service service = mock(Network.Service.class); when(networkModel.isProviderForNetwork(any(), anyLong())).thenReturn(true); - assertTrue(tungstenElement.canHandle(network, service)); + assertTrue(tungstenElement.canHandle(network, service)); }
Original Test Code (click to expand)
@Test public void canHandleSuccessTest() { Network network = mock(Network.class); Network.Service service = mock(Network.Service.class); when(networkModel.isProviderForNetwork(any(), anyLong())).thenReturn(true); assertTrue(tungstenElement.canHandle(network, service)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_2

Test Case Name: canHandleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void canHandleFailTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network.Service service = mock(Network.Service.class); when(networkModel.isProviderForNetwork(any(), anyLong())).thenReturn(false); - assertFalse(tungstenElement.canHandle(network, service)); + assertFalse(tungstenElement.canHandle(network, service)); }
Original Test Code (click to expand)
@Test public void canHandleFailTest() { Network network = mock(Network.class); Network.Service service = mock(Network.Service.class); when(networkModel.isProviderForNetwork(any(), anyLong())).thenReturn(false); assertFalse(tungstenElement.canHandle(network, service)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_3

Test Case Name: applyStaticNatsAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyStaticNatsAddRuleSuccessTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsAddRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_4

Test Case Name: applyStaticNatsAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyStaticNatsAddRuleFailTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); - assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); + assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsAddRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_5

Test Case Name: applyStaticNatsRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyStaticNatsRevokeRuleSuccessTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); - assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); + assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsRevokeRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_6

Test Case Name: applyStaticNatsRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyStaticNatsRevokeRuleFailTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); @@ - assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); + assertFalse(tungstenElement.applyStaticNats(network, staticNatList));
Original Test Code (click to expand)
@Test public void applyStaticNatsRevokeRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_7

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); @@ - assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); + assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1));
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_8

Test Case Name: applyLBRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyLBRulesAddRuleFailTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); @@ - assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); + assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_9

Test Case Name: applyLBRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyLBRulesRevokeRuleFailTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); @@ - assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); + assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1));
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_10

Test Case Name: applyLBRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyLBRulesRevokeRuleSuccessTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); @@ - assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); + assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList));
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_11

Test Case Name: applyPFRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyPFRulesAddRuleSuccessTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); + assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_12

Test Case Name: applyPFRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyPFRulesAddRuleFailTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); - assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); + assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_13

Test Case Name: applyPFRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleSuccessTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); @@ - assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); + assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList));
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_14

Test Case Name: applyPFRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleFailTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); @@ - assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); + assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_15

Test Case Name: destroyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void destroyTest() throws ConcurrentOperationException, ResourceUnavailableException { IPAddressVO ipAddressVO1 = mock(IPAddressVO.class); IPAddressVO ipAddressVO2 = mock(IPAddressVO.class); - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` ReservationContext reservationContext = mock(ReservationContext.class); List<IPAddressVO> ipAddressVOList = Arrays.asList(ipAddressVO1, ipAddressVO2); TungstenAnswer tungstenDeleteFIPAnswer = mock(TungstenAnswer.class); TungstenAnswer tungstenDeleteNPAnswer = mock(TungstenAnswer.class); when(ipAddressDao.listByAssociatedNetwork(anyLong(), anyBoolean())).thenReturn(ipAddressVOList); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpCommand.class), anyLong())).thenReturn(tungstenDeleteFIPAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(tungstenDeleteNPAnswer); when(tungstenDeleteFIPAnswer.getResult()).thenReturn(true); when(tungstenDeleteNPAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.destroy(network, reservationContext)); + assertTrue(tungstenElement.destroy(network, reservationContext)); }
Original Test Code (click to expand)
@Test public void destroyTest() throws ConcurrentOperationException, ResourceUnavailableException { IPAddressVO ipAddressVO1 = mock(IPAddressVO.class); IPAddressVO ipAddressVO2 = mock(IPAddressVO.class); Network network = mock(Network.class); ReservationContext reservationContext = mock(ReservationContext.class); List<IPAddressVO> ipAddressVOList = Arrays.asList(ipAddressVO1, ipAddressVO2); TungstenAnswer tungstenDeleteFIPAnswer = mock(TungstenAnswer.class); TungstenAnswer tungstenDeleteNPAnswer = mock(TungstenAnswer.class); when(ipAddressDao.listByAssociatedNetwork(anyLong(), anyBoolean())).thenReturn(ipAddressVOList); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpCommand.class), anyLong())).thenReturn(tungstenDeleteFIPAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(tungstenDeleteNPAnswer); when(tungstenDeleteFIPAnswer.getResult()).thenReturn(true); when(tungstenDeleteNPAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.destroy(network, reservationContext)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_16

Test Case Name: shutdownProviderInstancesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void shutdownProviderInstancesTest() throws ConcurrentOperationException { PhysicalNetworkServiceProvider physicalNetworkServiceProvider = mock(PhysicalNetworkServiceProvider.class); ReservationContext reservationContext = mock(ReservationContext.class); PhysicalNetworkVO physicalNetworkVO = mock(PhysicalNetworkVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `network` VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(network); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); }
Original Test Code (click to expand)
@Test public void shutdownProviderInstancesTest() throws ConcurrentOperationException { PhysicalNetworkServiceProvider physicalNetworkServiceProvider = mock(PhysicalNetworkServiceProvider.class); ReservationContext reservationContext = mock(ReservationContext.class); PhysicalNetworkVO physicalNetworkVO = mock(PhysicalNetworkVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_17

Test Case Name: applyFWRulesWithAddEgressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyFWRulesWithAddEgressRuleTest() throws ResourceUnavailableException { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Egress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); + assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Original Test Code (click to expand)
@Test public void applyFWRulesWithAddEgressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Egress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_18

Test Case Name: applyFWRulesWithAddIngressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyFWRulesWithAddIngressRuleTest() throws ResourceUnavailableException { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); Ip ip = mock(Ip.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findById(anyLong())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); + assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Original Test Code (click to expand)
@Test public void applyFWRulesWithAddIngressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); Ip ip = mock(Ip.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findById(anyLong())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_19

Test Case Name: applyFWRulesWithRevokeRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void applyFWRulesWithRevokeRuleTest() throws ResourceUnavailableException { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteNetworkPolicyAnswer); when(deleteNetworkPolicyAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); + assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Original Test Code (click to expand)
@Test public void applyFWRulesWithRevokeRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteNetworkPolicyAnswer); when(deleteNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_20

Test Case Name: rollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void rollbackMigration() { NicProfile nic = mock(NicProfile.class); - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); - tungstenElement.rollbackMigration(nic, network, vm, src, dest); + tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void rollbackMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_45_21

Test Case Name: commitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void commitMigration() { NicProfile nic = mock(NicProfile.class); - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); - tungstenElement.commitMigration(nic, network, vm, src, dest); + tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void commitMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Mock Clone Instance #cloudstack_MCI_46

Reusable Method

// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_46_1

Test Case Name: applyStaticNatsAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ Nic nic = mock(Nic.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); @@ - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList));
Original Test Code (click to expand)
@Test public void applyStaticNatsAddRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_2

Test Case Name: applyStaticNatsAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyStaticNatsAddRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsAddRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_3

Test Case Name: applyStaticNatsRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ Nic nic = mock(Nic.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` List<StaticNatImpl> staticNatList = List.of(staticNat); @@ - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer);
Original Test Code (click to expand)
@Test public void applyStaticNatsRevokeRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_4

Test Case Name: applyStaticNatsRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyStaticNatsRevokeRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsRevokeRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_5

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_6

Test Case Name: applyLBRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` Ip ip = mock(Ip.class);
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_7

Test Case Name: applyLBRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyLBRulesRevokeRuleFailTest() { Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); @@ - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_8

Test Case Name: applyLBRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyLBRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_9

Test Case Name: applyPFRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_10

Test Case Name: applyPFRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_11

Test Case Name: applyPFRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_12

Test Case Name: applyPFRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_13

Test Case Name: applyFWRulesWithAddEgressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyFWRulesWithAddEgressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Egress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Original Test Code (click to expand)
@Test public void applyFWRulesWithAddEgressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Egress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_14

Test Case Name: applyFWRulesWithAddIngressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyFWRulesWithAddIngressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); Ip ip = mock(Ip.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findById(anyLong())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Original Test Code (click to expand)
@Test public void applyFWRulesWithAddIngressRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer createNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyNetworkPolicyAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); Ip ip = mock(Ip.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Add); when(firewallRuleVO.getSourceCidrList()).thenReturn(List.of("192.168.100.0/24")); when(firewallRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findById(anyLong())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyNetworkPolicyAnswer); when(createNetworkPolicyAnswer.getResult()).thenReturn(true); when(applyNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Test Case ID #cloudstack_Test_46_15

Test Case Name: applyFWRulesWithRevokeRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void applyFWRulesWithRevokeRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `publicNetwork` TungstenAnswer deleteNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Revoke); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteNetworkPolicyAnswer); when(deleteNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Original Test Code (click to expand)
@Test public void applyFWRulesWithRevokeRuleTest() throws ResourceUnavailableException { Network network = mock(Network.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteNetworkPolicyAnswer = mock(TungstenAnswer.class); when(firewallRuleVO.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(firewallRuleVO.getPurpose()).thenReturn(FirewallRule.Purpose.Firewall); when(firewallRuleVO.getTrafficType()).thenReturn(FirewallRule.TrafficType.Ingress); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteNetworkPolicyAnswer); when(deleteNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyFWRules(network, List.of(firewallRuleVO))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network publicNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { publicNetwork = mock(Network.class); } // === Replace local variable in test with === publicNetwork;

Mock Clone Instance #cloudstack_MCI_47

Reusable Method

// === Declare in class scope === private Network managementNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { managementNetwork = mock(Network.class); } // === Replace local variable in test with === managementNetwork;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_47_1

Test Case Name: createManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: managementNetwork

Suggested Diff
@@ @Test public void createManagementNetworkTest() { - Network managementNetwork = mock(Network.class); + // removed local mock; replaced with global field `managementNetwork` VirtualNetwork managementVirtualNetwork = mock(VirtualNetwork.class); VirtualNetwork fabricVirtualNetwork = mock(VirtualNetwork.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer createTungstenNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenDefaultSecurityGroupAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenGlobalVrouterConfigAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenFabricNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenDefaultSecurityGroupCommand.class), anyLong())).thenReturn(updateTungstenDefaultSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenVrouterConfigCommand.class), anyLong())).thenReturn(updateTungstenGlobalVrouterConfigAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenFabricNetworkCommand.class), anyLong())).thenReturn(getTungstenFabricNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(createTungstenNetworkAnswer.getResult()).thenReturn(true); when(createTungstenNetworkAnswer.getApiObjectBase()).thenReturn(managementVirtualNetwork); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(getTungstenFabricNetworkAnswer.getApiObjectBase()).thenReturn(fabricVirtualNetwork); when(updateTungstenDefaultSecurityGroupAnswer.getResult()).thenReturn(true); when(updateTungstenGlobalVrouterConfigAnswer.getResult()).thenReturn(true); when(getTungstenFabricNetworkAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.createManagementNetwork(1L)); }
Original Test Code (click to expand)
@Test public void createManagementNetworkTest() { Network managementNetwork = mock(Network.class); VirtualNetwork managementVirtualNetwork = mock(VirtualNetwork.class); VirtualNetwork fabricVirtualNetwork = mock(VirtualNetwork.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer createTungstenNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenDefaultSecurityGroupAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenGlobalVrouterConfigAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenFabricNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenDefaultSecurityGroupCommand.class), anyLong())).thenReturn(updateTungstenDefaultSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenVrouterConfigCommand.class), anyLong())).thenReturn(updateTungstenGlobalVrouterConfigAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenFabricNetworkCommand.class), anyLong())).thenReturn(getTungstenFabricNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(createTungstenNetworkAnswer.getResult()).thenReturn(true); when(createTungstenNetworkAnswer.getApiObjectBase()).thenReturn(managementVirtualNetwork); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(getTungstenFabricNetworkAnswer.getApiObjectBase()).thenReturn(fabricVirtualNetwork); when(updateTungstenDefaultSecurityGroupAnswer.getResult()).thenReturn(true); when(updateTungstenGlobalVrouterConfigAnswer.getResult()).thenReturn(true); when(getTungstenFabricNetworkAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.createManagementNetwork(1L)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network managementNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { managementNetwork = mock(Network.class); } // === Replace local variable in test with === managementNetwork;

Test Case ID #cloudstack_Test_47_2

Test Case Name: deleteManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: managementNetwork

Suggested Diff
@@ @Test public void deleteManagementNetworkTest() { - Network managementNetwork = mock(Network.class); + // removed local mock; replaced with global field `managementNetwork` TungstenAnswer deleteTungstenManagementPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenFabricNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenFabricPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkAnswer = mock(TungstenAnswer.class); VirtualNetwork fabricVirtualNetwork = mock(VirtualNetwork.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenManagementPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenFabricNetworkCommand.class), anyLong())).thenReturn(getTungstenFabricNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenFabricPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong())).thenReturn(deleteTungstenNetworkAnswer); when(getTungstenFabricNetworkAnswer.getApiObjectBase()).thenReturn(fabricVirtualNetwork); when(deleteTungstenManagementPolicyAnswer.getResult()).thenReturn(true); when(getTungstenFabricNetworkAnswer.getResult()).thenReturn(true); when(deleteTungstenFabricPolicyAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.deleteManagementNetwork(1L)); }
Original Test Code (click to expand)
@Test public void deleteManagementNetworkTest() { Network managementNetwork = mock(Network.class); TungstenAnswer deleteTungstenManagementPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenFabricNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenFabricPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkAnswer = mock(TungstenAnswer.class); VirtualNetwork fabricVirtualNetwork = mock(VirtualNetwork.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Management))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenManagementPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenFabricNetworkCommand.class), anyLong())).thenReturn(getTungstenFabricNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenFabricPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong())).thenReturn(deleteTungstenNetworkAnswer); when(getTungstenFabricNetworkAnswer.getApiObjectBase()).thenReturn(fabricVirtualNetwork); when(deleteTungstenManagementPolicyAnswer.getResult()).thenReturn(true); when(getTungstenFabricNetworkAnswer.getResult()).thenReturn(true); when(deleteTungstenFabricPolicyAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.deleteManagementNetwork(1L)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network managementNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { managementNetwork = mock(Network.class); } // === Replace local variable in test with === managementNetwork;

Test Case ID #cloudstack_Test_47_3

Test Case Name: createPublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void createPublicNetworkTest() { - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `managementNetwork` VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer createPublicNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer createFloatingIpPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createPublicNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(createFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(createPublicNetworkAnswer.getResult()).thenReturn(true); when(createFloatingIpPoolAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(createPublicNetworkAnswer.getApiObjectBase()).thenReturn(virtualNetwork); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(virtualNetwork.getQualifiedName()).thenReturn(Arrays.asList("default-domain", "default-project", "publicNetwork")); assertTrue(tungstenService.createPublicNetwork(1L)); }
Original Test Code (click to expand)
@Test public void createPublicNetworkTest() { Network publicNetwork = mock(Network.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer createPublicNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer createFloatingIpPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createPublicNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(createFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(createPublicNetworkAnswer.getResult()).thenReturn(true); when(createFloatingIpPoolAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(createPublicNetworkAnswer.getApiObjectBase()).thenReturn(virtualNetwork); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(virtualNetwork.getQualifiedName()).thenReturn(Arrays.asList("default-domain", "default-project", "publicNetwork")); assertTrue(tungstenService.createPublicNetwork(1L)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network managementNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { managementNetwork = mock(Network.class); } // === Replace local variable in test with === managementNetwork;

Test Case ID #cloudstack_Test_47_4

Test Case Name: deletePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: publicNetwork

Suggested Diff
@@ @Test public void deletePublicNetworkTest() { - Network publicNetwork = mock(Network.class); + // removed local mock; replaced with global field `managementNetwork` TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenFloatingIpPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkAnswer = mock(TungstenAnswer.class); - when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); + when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(managementNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(deleteTungstenFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong())).thenReturn(deleteTungstenNetworkAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(deleteTungstenFloatingIpPoolAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.deletePublicNetwork(1L)); }
Original Test Code (click to expand)
@Test public void deletePublicNetworkTest() { Network publicNetwork = mock(Network.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenFloatingIpPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkAnswer = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenFloatingIpPoolCommand.class), anyLong())).thenReturn(deleteTungstenFloatingIpPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong())).thenReturn(deleteTungstenNetworkAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(deleteTungstenFloatingIpPoolAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkAnswer.getResult()).thenReturn(true); assertTrue(tungstenService.deletePublicNetwork(1L)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network managementNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { managementNetwork = mock(Network.class); } // === Replace local variable in test with === managementNetwork;

Test Case ID #cloudstack_Test_47_5

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void updateLoadBalancerTest() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `managementNetwork` LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); - assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); + assertTrue(tungstenService.updateLoadBalancer(managementNetwork, loadBalancingRule)); }
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network managementNetwork; // === Add to @BeforeEach method === @BeforeEach public void setUp() { managementNetwork = mock(Network.class); } // === Replace local variable in test with === managementNetwork;

Mock Clone Instance #cloudstack_MCI_48

Reusable Method

// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_48_1

Test Case Name: testCanDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void testCanDesign() { List<Network.Service> networkOfferingServiceList = new ArrayList<>(Arrays.asList(Network.Service.Connectivity, Network.Service.Dns, Network.Service.Dhcp, Network.Service.SourceNat, Network.Service.StaticNat, Network.Service.UserData)); when(networkModel.listNetworkOfferingServices(anyLong())).thenReturn(networkOfferingServiceList); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designedNetwork = guru.design(offering, plan, network, account); assertNotNull(designedNetwork); assertSame(Networks.BroadcastDomainType.TUNGSTEN, designedNetwork.getBroadcastDomainType()); assertSame(Network.State.Allocated, designedNetwork.getState()); }
Original Test Code (click to expand)
@Test public void testCanDesign() { List<Network.Service> networkOfferingServiceList = new ArrayList<>(Arrays.asList(Network.Service.Connectivity, Network.Service.Dns, Network.Service.Dhcp, Network.Service.SourceNat, Network.Service.StaticNat, Network.Service.UserData)); when(networkModel.listNetworkOfferingServices(anyLong())).thenReturn(networkOfferingServiceList); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designedNetwork = guru.design(offering, plan, network, account); assertNotNull(designedNetwork); assertSame(Networks.BroadcastDomainType.TUNGSTEN, designedNetwork.getBroadcastDomainType()); assertSame(Network.State.Allocated, designedNetwork.getState()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_48_2

Test Case Name: testTrash(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void testTrash() { - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` guru.trash(network, offering); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(ClearTungstenNetworkGatewayCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong()); verify(tungstenService, times(1)).deallocateDnsIpAddress(any(), any(), anyString()); }
Original Test Code (click to expand)
@Test public void testTrash() { final Network network = mock(Network.class); guru.trash(network, offering); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(ClearTungstenNetworkGatewayCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong()); verify(tungstenService, times(1)).deallocateDnsIpAddress(any(), any(), anyString()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_48_3

Test Case Name: testRollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void testRollbackMigration() { final NicProfile nic = mock(NicProfile.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); - guru.rollbackMigration(nic, network, vmProfile, context, context); + guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testRollbackMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_48_4

Test Case Name: testCommitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void testCommitMigration() { final NicProfile nic = mock(NicProfile.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); - guru.commitMigration(nic, network, vmProfile, context, context); + guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testCommitMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Mock Clone Instance #cloudstack_MCI_49

Reusable Method

public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_49_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ URI uri = URI.create("vlan://123"); - Network network = mock(Network.class); - when(network.getId()).thenReturn(1L); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); - when(network.getDataCenterId()).thenReturn(1L); - when(network.getGateway()).thenReturn("1.1.1.1"); - when(network.getBroadcastUri()).thenReturn(uri); - when(network.getCidr()).thenReturn("1.1.1.0/24"); + Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Vlan, uri, 1L); + when(network.getDataCenterId()).thenReturn(1L); + when(network.getGateway()).thenReturn("1.1.1.1"); + when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); @@
Original Test Code (click to expand)
@Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_2

Test Case Name: shutdownTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ URI uri = URI.create("vlan://123"); - Network network = mock(Network.class); - when(network.getId()).thenReturn(1L); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); - when(network.getDataCenterId()).thenReturn(1L); - when(network.getBroadcastUri()).thenReturn(uri); + Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Vlan, uri, 1L); + when(network.getDataCenterId()).thenReturn(1L); ReservationContext context = mock(ReservationContext.class); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CleanupLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.shutdown(network, context, true)); @@
Original Test Code (click to expand)
@Test public void shutdownTest() throws ConcurrentOperationException, ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); ReservationContext context = mock(ReservationContext.class); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CleanupLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.shutdown(network, context, true)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_3

Test Case Name: applyFWRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ URI uri = URI.create("vlan://123"); - Network network = mock(Network.class); - when(network.getId()).thenReturn(1L); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); - when(network.getDataCenterId()).thenReturn(1L); - when(network.getBroadcastUri()).thenReturn(uri); - when(network.getCidr()).thenReturn("1.1.1.0/24"); - when(network.getState()).thenReturn(Network.State.Implemented); + Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Vlan, uri, 1L); + when(network.getDataCenterId()).thenReturn(1L); + when(network.getCidr()).thenReturn("1.1.1.0/24"); + when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); @@
Original Test Code (click to expand)
@Test public void applyFWRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); FirewallRule rule = mock(FirewallRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); List<FirewallRule> rules = new ArrayList<FirewallRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetFirewallRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyFWRules(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_4

Test Case Name: applyPRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ URI uri = URI.create("vlan://123"); - Network network = mock(Network.class); - when(network.getId()).thenReturn(1L); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); - when(network.getDataCenterId()).thenReturn(1L); - when(network.getBroadcastUri()).thenReturn(uri); - when(network.getCidr()).thenReturn("1.1.1.0/24"); - when(network.getState()).thenReturn(Network.State.Implemented); + Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Vlan, uri, 1L); + when(network.getDataCenterId()).thenReturn(1L); + when(network.getCidr()).thenReturn("1.1.1.0/24"); + when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); @@
Original Test Code (click to expand)
@Test public void applyPRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); PortForwardingRule rule = mock(PortForwardingRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestinationIpAddress()).thenReturn(ip); List<PortForwardingRule> rules = new ArrayList<PortForwardingRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetPortForwardingRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyPFRules(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_5

Test Case Name: applyStaticNatsTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ URI uri = URI.create("vlan://123"); - Network network = mock(Network.class); - when(network.getId()).thenReturn(1L); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); - when(network.getDataCenterId()).thenReturn(1L); - when(network.getBroadcastUri()).thenReturn(uri); - when(network.getCidr()).thenReturn("1.1.1.0/24"); - when(network.getState()).thenReturn(Network.State.Implemented); + Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Vlan, uri, 1L); + when(network.getDataCenterId()).thenReturn(1L); + when(network.getCidr()).thenReturn("1.1.1.0/24"); + when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); @@
Original Test Code (click to expand)
@Test public void applyStaticNatsTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.StaticNat, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); StaticNat rule = mock(StaticNat.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestIpAddress()).thenReturn("1.2.3.4"); when(rule.isForRevoke()).thenReturn(false); List<StaticNat> rules = new ArrayList<StaticNat>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetStaticNatRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyStaticNats(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_6

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { - final Network network = mock(Network.class); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); - when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); - when(network.getId()).thenReturn(NETWORK_ID); - when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); - when(network.getGuestType()).thenReturn(GuestType.Isolated); + final Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Lswitch, new URI("lswitch:aaaaa"), NETWORK_ID); + when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); + when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); + when(network.getGateway()).thenReturn(NETWORK_GATEWAY); + when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); } @@
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_7

Test Case Name: implementSharedNetworkUuidVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID - final Network network = mock(Network.class); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); - when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); - when(network.getId()).thenReturn(NETWORK_ID); + final Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Lswitch, new URI("lswitch:aaaaa"), NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkUuidVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_8

Test Case Name: implementSharedNetworkNumericalVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID -final Network network = mock(Network.class); -when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); -when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); -when(network.getId()).thenReturn(NETWORK_ID); -when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); -when(network.getGuestType()).thenReturn(GuestType.Shared); +final Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Lswitch, new URI("lswitch:aaaaa"), NETWORK_ID); +when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); +when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkNumericalVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn("bbbb-bbbb-bbbb"); final ConfigureSharedNetworkVlanIdAnswer answer = mock(ConfigureSharedNetworkVlanIdAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Test Case ID #cloudstack_Test_49_9

Test Case Name: implementSharedNetworkNumericalVlanIdWithoutL2GatewayService(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ - final Network network = mock(Network.class); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); - when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); - when(network.getId()).thenReturn(NETWORK_ID); - when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); - when(network.getGuestType()).thenReturn(GuestType.Shared); + final Network network = MockNetwork.createMockNetwork(BroadcastDomainType.Lswitch, new URI("lswitch:aaaaa"), NETWORK_ID); + when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); + when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void implementSharedNetworkNumericalVlanIdWithoutL2GatewayService() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); element.implement(network, offering, dest, context); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(Networks.BroadcastDomainType broadcastDomainType, URI broadcastUri, long id) { Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); when(network.getBroadcastUri()).thenReturn(broadcastUri); when(network.getId()).thenReturn(id); return network; } }

Mock Clone Instance #cloudstack_MCI_50

Reusable Method

public class MockNetwork { public static Network createMockNetwork(long id, Networks.BroadcastDomainType broadcastDomainType) { Network network = mock(Network.class); when(network.getId()).thenReturn(id); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); return network; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_50_1

Test Case Name: canHandleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void canHandleTest() { - Network network = mock(Network.class); - when(network.getId()).thenReturn(1L); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); + Network network = MockNetwork.createMockNetwork(1L, BroadcastDomainType.Vlan); assertTrue(_element.canHandle(network)); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.UnDecided); assertFalse(_element.canHandle(network)); }
Original Test Code (click to expand)
@Test public void canHandleTest() { Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); assertTrue(_element.canHandle(network)); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.UnDecided); assertFalse(_element.canHandle(network)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(long id, Networks.BroadcastDomainType broadcastDomainType) { Network network = mock(Network.class); when(network.getId()).thenReturn(id); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); return network; } }

Test Case ID #cloudstack_Test_50_2

Test Case Name: canHandleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: net

Suggested Diff
--- original +++ refactored @@ public void canHandleTest() { - final Network net = mock(Network.class); - when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); - when(net.getId()).thenReturn(NETWORK_ID); + final Network net = MockNetwork.createMockNetwork(NETWORK_ID, BroadcastDomainType.Lswitch); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); // Golden path assertTrue(element.canHandle(net, Service.Connectivity)); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); // Only broadcastdomaintype lswitch is supported assertFalse(element.canHandle(net, Service.Connectivity)); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(false); // No nvp provider in the network assertFalse(element.canHandle(net, Service.Connectivity)); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(false); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); // NVP provider does not provide Connectivity for this network assertFalse(element.canHandle(net, Service.Connectivity)); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); // Only service Connectivity is supported assertFalse(element.canHandle(net, Service.Dhcp)); }
Original Test Code (click to expand)
@Test public void canHandleTest() { final Network net = mock(Network.class); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(net.getId()).thenReturn(NETWORK_ID); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); // Golden path assertTrue(element.canHandle(net, Service.Connectivity)); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); // Only broadcastdomaintype lswitch is supported assertFalse(element.canHandle(net, Service.Connectivity)); when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(false); // No nvp provider in the network assertFalse(element.canHandle(net, Service.Connectivity)); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(false); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); // NVP provider does not provide Connectivity for this network assertFalse(element.canHandle(net, Service.Connectivity)); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); // Only service Connectivity is supported assertFalse(element.canHandle(net, Service.Dhcp)); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(long id, Networks.BroadcastDomainType broadcastDomainType) { Network network = mock(Network.class); when(network.getId()).thenReturn(id); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); return network; } }

Test Case ID #cloudstack_Test_50_3

Test Case Name: applyIpTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test public void applyIpTest() throws ResourceUnavailableException { - final Network network = mock(Network.class); - when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); - when(network.getId()).thenReturn(NETWORK_ID); - when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); + final Network network = MockNetwork.createMockNetwork(NETWORK_ID, BroadcastDomainType.Lswitch); + when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final List<PublicIpAddress> ipAddresses = new ArrayList<PublicIpAddress>(); final PublicIpAddress pipReleased = mock(PublicIpAddress.class); final PublicIpAddress pipAllocated = mock(PublicIpAddress.class); final Ip ipReleased = new Ip("42.10.10.10"); final Ip ipAllocated = new Ip("10.10.10.10"); when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated); when(pipAllocated.getAddress()).thenReturn(ipAllocated); when(pipAllocated.getNetmask()).thenReturn("255.255.255.0"); when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing); when(pipReleased.getAddress()).thenReturn(ipReleased); when(pipReleased.getNetmask()).thenReturn("255.255.255.0"); ipAddresses.add(pipAllocated); ipAddresses.add(pipReleased); final Set<Service> services = new HashSet<Service>(); services.add(Service.SourceNat); services.add(Service.StaticNat); services.add(Service.PortForwarding); final List<NiciraNvpDeviceVO> deviceList = new ArrayList<NiciraNvpDeviceVO>(); final NiciraNvpDeviceVO nndVO = mock(NiciraNvpDeviceVO.class); final NiciraNvpRouterMappingVO nnrmVO = mock(NiciraNvpRouterMappingVO.class); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(nnrmVO); when(nnrmVO.getLogicalRouterUuid()).thenReturn("abcde"); when(nndVO.getHostId()).thenReturn(NETWORK_ID); final HostVO hvo = mock(HostVO.class); when(hvo.getId()).thenReturn(NETWORK_ID); when(hvo.getDetail("l3gatewayserviceuuid")).thenReturn("abcde"); when(hostDao.findById(NETWORK_ID)).thenReturn(hvo); deviceList.add(nndVO); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(deviceList); final ConfigurePublicIpsOnLogicalRouterAnswer answer = mock(ConfigurePublicIpsOnLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NETWORK_ID), any(ConfigurePublicIpsOnLogicalRouterCommand.class))).thenReturn(answer); assertTrue(element.applyIps(network, ipAddresses, services)); verify(agentManager, atLeast(1)).easySend(eq(NETWORK_ID), argThat(new ArgumentMatcher<ConfigurePublicIpsOnLogicalRouterCommand>() { @Override public boolean matches(final ConfigurePublicIpsOnLogicalRouterCommand command) { return command.getPublicCidrs().size() == 1; } })); }
Original Test Code (click to expand)
@Test public void applyIpTest() throws ResourceUnavailableException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final List<PublicIpAddress> ipAddresses = new ArrayList<PublicIpAddress>(); final PublicIpAddress pipReleased = mock(PublicIpAddress.class); final PublicIpAddress pipAllocated = mock(PublicIpAddress.class); final Ip ipReleased = new Ip("42.10.10.10"); final Ip ipAllocated = new Ip("10.10.10.10"); when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated); when(pipAllocated.getAddress()).thenReturn(ipAllocated); when(pipAllocated.getNetmask()).thenReturn("255.255.255.0"); when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing); when(pipReleased.getAddress()).thenReturn(ipReleased); when(pipReleased.getNetmask()).thenReturn("255.255.255.0"); ipAddresses.add(pipAllocated); ipAddresses.add(pipReleased); final Set<Service> services = new HashSet<Service>(); services.add(Service.SourceNat); services.add(Service.StaticNat); services.add(Service.PortForwarding); final List<NiciraNvpDeviceVO> deviceList = new ArrayList<NiciraNvpDeviceVO>(); final NiciraNvpDeviceVO nndVO = mock(NiciraNvpDeviceVO.class); final NiciraNvpRouterMappingVO nnrmVO = mock(NiciraNvpRouterMappingVO.class); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(nnrmVO); when(nnrmVO.getLogicalRouterUuid()).thenReturn("abcde"); when(nndVO.getHostId()).thenReturn(NETWORK_ID); final HostVO hvo = mock(HostVO.class); when(hvo.getId()).thenReturn(NETWORK_ID); when(hvo.getDetail("l3gatewayserviceuuid")).thenReturn("abcde"); when(hostDao.findById(NETWORK_ID)).thenReturn(hvo); deviceList.add(nndVO); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(deviceList); final ConfigurePublicIpsOnLogicalRouterAnswer answer = mock(ConfigurePublicIpsOnLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NETWORK_ID), any(ConfigurePublicIpsOnLogicalRouterCommand.class))).thenReturn(answer); assertTrue(element.applyIps(network, ipAddresses, services)); verify(agentManager, atLeast(1)).easySend(eq(NETWORK_ID), argThat(new ArgumentMatcher<ConfigurePublicIpsOnLogicalRouterCommand>() { @Override public boolean matches(final ConfigurePublicIpsOnLogicalRouterCommand command) { return command.getPublicCidrs().size() == 1; } })); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(long id, Networks.BroadcastDomainType broadcastDomainType) { Network network = mock(Network.class); when(network.getId()).thenReturn(id); when(network.getBroadcastDomainType()).thenReturn(broadcastDomainType); return network; } }

Mock Clone Instance #cloudstack_MCI_51

Reusable Method

private static Network createMockNetwork(long id) { Network network = Mockito.mock(Network.class); when(network.getId()).thenReturn(id); return network; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_51_1

Test Case Name: testCanHandle(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\element\VirtualRouterElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ public void testCanHandle() { - Network network = Mockito.mock(Network.class); + Network network = createMockNetwork(networkId); final long networkId = 1; final long physicalNetworkId = 42; final long networkOfferingId = 10; final long dataCenterId = 33; - when(network.getId()).thenReturn(networkId); lenient().when(network.getPhysicalNetworkId()).thenReturn(physicalNetworkId); lenient().when(network.getTrafficType()).thenReturn(TrafficType.Guest); lenient().when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); lenient().when(network.getDataCenterId()).thenReturn(dataCenterId); when(network.getVpcId()).thenReturn(null); when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); when(virtualRouterElement._networkMdl.isProviderForNetwork(Network.Provider.VirtualRouter, networkId)).thenReturn(true); assertTrue(virtualRouterElement.canHandle(network, null)); @@
Original Test Code (click to expand)
@Test public void testCanHandle() { Network network = Mockito.mock(Network.class); final long networkId = 1; final long physicalNetworkId = 42; final long networkOfferingId = 10; final long dataCenterId = 33; when(network.getId()).thenReturn(networkId); lenient().when(network.getPhysicalNetworkId()).thenReturn(physicalNetworkId); lenient().when(network.getTrafficType()).thenReturn(TrafficType.Guest); lenient().when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); lenient().when(network.getDataCenterId()).thenReturn(dataCenterId); when(network.getVpcId()).thenReturn(null); when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); when(virtualRouterElement._networkMdl.isProviderForNetwork(Network.Provider.VirtualRouter, networkId)).thenReturn(true); assertTrue(virtualRouterElement.canHandle(network, null)); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long id) { Network network = Mockito.mock(Network.class); when(network.getId()).thenReturn(id); return network; }

Test Case ID #cloudstack_Test_51_2

Test Case Name: testAddPasswordAndUserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\element\VirtualRouterElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ public void testAddPasswordAndUserdata() throws Exception { - Network network = Mockito.mock(Network.class); + Network network = createMockNetwork(networkId); VirtualMachineProfile vm = Mockito.mock(VirtualMachineProfile.class); NicProfile nic = Mockito.mock(NicProfile.class); DeployDestination dest = Mockito.mock(DeployDestination.class); ReservationContext context = Mockito.mock(ReservationContext.class); Service service = Service.UserData; final long networkId = 1; final long physicalNetworkId = 42; final long networkOfferingId = 10; final long dataCenterId = 33; - when(network.getId()).thenReturn(networkId); lenient().when(network.getPhysicalNetworkId()).thenReturn(physicalNetworkId); lenient().when(network.getTrafficType()).thenReturn(TrafficType.Guest); lenient().when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); lenient().when(network.getDataCenterId()).thenReturn(dataCenterId); when(network.getVpcId()).thenReturn(null); lenient().when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); when(virtualRouterElement._networkMdl.isProviderSupportServiceInNetwork(networkId, service, Network.Provider.VirtualRouter)).thenReturn(true); lenient().when(virtualRouterElement._dcDao.findById(dataCenterId)).thenReturn(Mockito.mock(DataCenterVO.class)); when(virtualRouterElement.canHandle(network, service)).thenReturn(false); assertTrue(virtualRouterElement.addPasswordAndUserdata(network, nic, vm, dest, context)); @@
Original Test Code (click to expand)
@Test public void testAddPasswordAndUserdata() throws Exception { Network network = Mockito.mock(Network.class); VirtualMachineProfile vm = Mockito.mock(VirtualMachineProfile.class); NicProfile nic = Mockito.mock(NicProfile.class); DeployDestination dest = Mockito.mock(DeployDestination.class); ReservationContext context = Mockito.mock(ReservationContext.class); Service service = Service.UserData; final long networkId = 1; final long physicalNetworkId = 42; final long networkOfferingId = 10; final long dataCenterId = 33; when(network.getId()).thenReturn(networkId); lenient().when(network.getPhysicalNetworkId()).thenReturn(physicalNetworkId); lenient().when(network.getTrafficType()).thenReturn(TrafficType.Guest); lenient().when(network.getNetworkOfferingId()).thenReturn(networkOfferingId); lenient().when(network.getDataCenterId()).thenReturn(dataCenterId); when(network.getVpcId()).thenReturn(null); lenient().when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(virtualRouterElement._networkMdl.getPhysicalNetworkId(network)).thenReturn(physicalNetworkId); when(virtualRouterElement._networkMdl.isProviderEnabledInPhysicalNetwork(physicalNetworkId, Network.Provider.VirtualRouter.getName())).thenReturn(true); when(virtualRouterElement._networkMdl.isProviderSupportServiceInNetwork(networkId, service, Network.Provider.VirtualRouter)).thenReturn(true); lenient().when(virtualRouterElement._dcDao.findById(dataCenterId)).thenReturn(Mockito.mock(DataCenterVO.class)); when(virtualRouterElement.canHandle(network, service)).thenReturn(false); assertTrue(virtualRouterElement.addPasswordAndUserdata(network, nic, vm, dest, context)); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long id) { Network network = Mockito.mock(Network.class); when(network.getId()).thenReturn(id); return network; }

Mock Clone Instance #cloudstack_MCI_52

Reusable Method

// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_52_1

Test Case Name: testConfigureNicProfileBasedOnRequestedIpTestMacNull(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void testConfigureNicProfileBasedOnRequestedIpTestMacNull() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, null, "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert("192.168.100.150", "192.168.100.1", "255.255.255.0", nicProfile, 1, 1); }
Original Test Code (click to expand)
@Test public void testConfigureNicProfileBasedOnRequestedIpTestMacNull() { Network network = mock(Network.class); NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, null, "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert("192.168.100.150", "192.168.100.1", "255.255.255.0", nicProfile, 1, 1); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_52_2

Test Case Name: testConfigureNicProfileBasedOnRequestedIpTestNicProfileMacNotNull(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test public void testConfigureNicProfileBasedOnRequestedIpTestNicProfileMacNotNull() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert("192.168.100.150", "192.168.100.1", "255.255.255.0", nicProfile, 1, 0); }
Original Test Code (click to expand)
@Test public void testConfigureNicProfileBasedOnRequestedIpTestNicProfileMacNotNull() { Network network = mock(Network.class); NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert("192.168.100.150", "192.168.100.1", "255.255.255.0", nicProfile, 1, 0); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_52_3

Test Case Name: testConfigureNicProfileBasedOnRequestedIpTestRequestedIp(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ private void testConfigureNicProfileBasedOnRequestedIpTestRequestedIp(String requestedIpv4Address) { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, null, requestedIpv4Address); - testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); + testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 0, 0); }
Original Test Code (click to expand)
private void testConfigureNicProfileBasedOnRequestedIpTestRequestedIp(String requestedIpv4Address) { Network network = mock(Network.class); NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, null, requestedIpv4Address); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 0, 0); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_52_4

Test Case Name: testConfigureNicProfileBasedOnRequestedIpTestGateway(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ private void testConfigureNicProfileBasedOnRequestedIpTestGateway(String ipv4Gateway) { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, ipv4Gateway, "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 1, 0); }
Original Test Code (click to expand)
private void testConfigureNicProfileBasedOnRequestedIpTestGateway(String ipv4Gateway) { Network network = mock(Network.class); NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, ipv4Gateway, "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 1, 0); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_52_5

Test Case Name: testConfigureNicProfileBasedOnRequestedIpTestNetmask(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ private void testConfigureNicProfileBasedOnRequestedIpTestNetmask(String ipv4Netmask) { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", ipv4Netmask, "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 1, 0); }
Original Test Code (click to expand)
private void testConfigureNicProfileBasedOnRequestedIpTestNetmask(String ipv4Netmask) { Network network = mock(Network.class); NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", ipv4Netmask, "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 1, 0); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_52_6

Test Case Name: testConfigureNicProfileBasedOnRequestedIpTestIPAddressVONull(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test(expected = InvalidParameterValueException.class) public void testConfigureNicProfileBasedOnRequestedIpTestIPAddressVONull() { - Network network = mock(Network.class); + // removed local mock; replaced with global field `network` NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); when(testOrchastrator._vlanDao.findByNetworkIdAndIpv4(Mockito.anyLong(), Mockito.anyString())).thenReturn(null); - testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); + testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 0, 0); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testConfigureNicProfileBasedOnRequestedIpTestIPAddressVONull() { Network network = mock(Network.class); NicProfile requestedNicProfile = new NicProfile(); NicProfile nicProfile = Mockito.spy(new NicProfile()); configureTestConfigureNicProfileBasedOnRequestedIpTests(nicProfile, 0l, false, IPAddressVO.State.Free, "192.168.100.1", "255.255.255.0", "00-88-14-4D-4C-FB", requestedNicProfile, "00-88-14-4D-4C-FB", "192.168.100.150"); when(testOrchastrator._vlanDao.findByNetworkIdAndIpv4(Mockito.anyLong(), Mockito.anyString())).thenReturn(null); testOrchastrator.configureNicProfileBasedOnRequestedIp(requestedNicProfile, nicProfile, network); verifyAndAssert(null, null, null, nicProfile, 0, 0); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Mock Clone Instance #cloudstack_MCI_53

Reusable Method

private static Network createMockNetwork(long dataCenterIdReturn) { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(dataCenterIdReturn); when(network.getId()).thenReturn(1l); return network; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_53_1

Test Case Name: testUpperCaseCharactersAreNotAllowed(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\globodns\src\test\java\com\globo\globodns\cloudstack\element\GloboDnsElementTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ @Test(expected = InvalidParameterValueException.class) public void testUpperCaseCharactersAreNotAllowed() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { - Network network = mock(Network.class); - when(network.getDataCenterId()).thenReturn(zoneId); - when(network.getId()).thenReturn(1l); + Network network = createMockNetwork(zoneId); NicProfile nic = new NicProfile(); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("UPPERCASENAME"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(_datacenterDao.findById(zoneId)).thenReturn(mock(DataCenterVO.class)); DeployDestination dest = new DeployDestination(); ReservationContext context = new ReservationContextImpl(null, null, user); _globodnsElement.prepare(network, nic, vm, dest, context); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testUpperCaseCharactersAreNotAllowed() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(zoneId); when(network.getId()).thenReturn(1l); NicProfile nic = new NicProfile(); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("UPPERCASENAME"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(_datacenterDao.findById(zoneId)).thenReturn(mock(DataCenterVO.class)); DeployDestination dest = new DeployDestination(); ReservationContext context = new ReservationContextImpl(null, null, user); _globodnsElement.prepare(network, nic, vm, dest, context); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long dataCenterIdReturn) { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(dataCenterIdReturn); when(network.getId()).thenReturn(1l); return network; }

Test Case ID #cloudstack_Test_53_2

Test Case Name: testPrepareMethodCallGloboDnsToRegisterHostName(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\globodns\src\test\java\com\globo\globodns\cloudstack\element\GloboDnsElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test public void testPrepareMethodCallGloboDnsToRegisterHostName() throws Exception { - Network network = mock(Network.class); - when(network.getDataCenterId()).thenReturn(zoneId); - when(network.getId()).thenReturn(1l); + Network network = createMockNetwork(zoneId); NicProfile nic = new NicProfile(); nic.setIPv4Address("10.11.12.13"); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("vm-name"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); when(_datacenterDao.findById(zoneId)).thenReturn(dataCenterVO); DeployDestination dest = new DeployDestination(); ReservationContext context = new ReservationContextImpl(null, null, user); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(globoDnsHostId); when(_hostDao.findByTypeNameAndZoneId(eq(zoneId), eq(Provider.GloboDns.getName()), eq(Type.L2Networking))).thenReturn(hostVO); when(_agentMgr.easySend(eq(globoDnsHostId), isA(CreateOrUpdateRecordAndReverseCommand.class))).then(new org.mockito.stubbing.Answer<Answer>() { @Override public Answer answer(InvocationOnMock invocation) throws Throwable { Command cmd = (Command) invocation.getArguments()[1]; return new Answer(cmd); } }); _globodnsElement.prepare(network, nic, vm, dest, context); verify(_agentMgr, times(1)).easySend(eq(globoDnsHostId), isA(CreateOrUpdateRecordAndReverseCommand.class)); }
Original Test Code (click to expand)
@Test public void testPrepareMethodCallGloboDnsToRegisterHostName() throws Exception { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(zoneId); when(network.getId()).thenReturn(1l); NicProfile nic = new NicProfile(); nic.setIPv4Address("10.11.12.13"); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("vm-name"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); when(_datacenterDao.findById(zoneId)).thenReturn(dataCenterVO); DeployDestination dest = new DeployDestination(); ReservationContext context = new ReservationContextImpl(null, null, user); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(globoDnsHostId); when(_hostDao.findByTypeNameAndZoneId(eq(zoneId), eq(Provider.GloboDns.getName()), eq(Type.L2Networking))).thenReturn(hostVO); when(_agentMgr.easySend(eq(globoDnsHostId), isA(CreateOrUpdateRecordAndReverseCommand.class))).then(new org.mockito.stubbing.Answer<Answer>() { @Override public Answer answer(InvocationOnMock invocation) throws Throwable { Command cmd = (Command) invocation.getArguments()[1]; return new Answer(cmd); } }); _globodnsElement.prepare(network, nic, vm, dest, context); verify(_agentMgr, times(1)).easySend(eq(globoDnsHostId), isA(CreateOrUpdateRecordAndReverseCommand.class)); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long dataCenterIdReturn) { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(dataCenterIdReturn); when(network.getId()).thenReturn(1l); return network; }

Test Case ID #cloudstack_Test_53_3

Test Case Name: testReleaseMethodCallResource(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\globodns\src\test\java\com\globo\globodns\cloudstack\element\GloboDnsElementTest.java)

Mock Object Variable Name: network

Suggested Diff
--- original +++ refactored @@ @Test public void testReleaseMethodCallResource() throws Exception { - Network network = mock(Network.class); - when(network.getDataCenterId()).thenReturn(zoneId); - when(network.getId()).thenReturn(1l); + Network network = createMockNetwork(zoneId); NicProfile nic = new NicProfile(); nic.setIPv4Address("10.11.12.13"); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("vm-name"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); when(_datacenterDao.findById(zoneId)).thenReturn(dataCenterVO); ReservationContext context = new ReservationContextImpl(null, null, user); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(globoDnsHostId); when(_hostDao.findByTypeNameAndZoneId(eq(zoneId), eq(Provider.GloboDns.getName()), eq(Type.L2Networking))).thenReturn(hostVO); when(_agentMgr.easySend(eq(globoDnsHostId), isA(RemoveRecordCommand.class))).then(new org.mockito.stubbing.Answer<Answer>() { @Override public Answer answer(InvocationOnMock invocation) throws Throwable { Command cmd = (Command) invocation.getArguments()[1]; return new Answer(cmd); } }); _globodnsElement.release(network, nic, vm, context); verify(_agentMgr, times(1)).easySend(eq(globoDnsHostId), isA(RemoveRecordCommand.class)); } @@
Original Test Code (click to expand)
@Test public void testReleaseMethodCallResource() throws Exception { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(zoneId); when(network.getId()).thenReturn(1l); NicProfile nic = new NicProfile(); nic.setIPv4Address("10.11.12.13"); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("vm-name"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); when(_datacenterDao.findById(zoneId)).thenReturn(dataCenterVO); ReservationContext context = new ReservationContextImpl(null, null, user); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(globoDnsHostId); when(_hostDao.findByTypeNameAndZoneId(eq(zoneId), eq(Provider.GloboDns.getName()), eq(Type.L2Networking))).thenReturn(hostVO); when(_agentMgr.easySend(eq(globoDnsHostId), isA(RemoveRecordCommand.class))).then(new org.mockito.stubbing.Answer<Answer>() { @Override public Answer answer(InvocationOnMock invocation) throws Throwable { Command cmd = (Command) invocation.getArguments()[1]; return new Answer(cmd); } }); _globodnsElement.release(network, nic, vm, context); verify(_agentMgr, times(1)).easySend(eq(globoDnsHostId), isA(RemoveRecordCommand.class)); }
Reusable Method for MCI (click to expand)
private static Network createMockNetwork(long dataCenterIdReturn) { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(dataCenterIdReturn); when(network.getId()).thenReturn(1l); return network; }

Mock Clone Instance #cloudstack_MCI_54

Reusable Method

public class MockNetwork { public static Network createMockNetwork(String dns1, String dns2, String ip6Dns1, String ip6Dns2) { Network network = Mockito.mock(Network.class); Mockito.when(network.getDns1()).thenReturn(dns1); Mockito.when(network.getDns2()).thenReturn(dns2); Mockito.when(network.getIp6Dns1()).thenReturn(ip6Dns1); Mockito.when(network.getIp6Dns2()).thenReturn(ip6Dns2); return network; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_54_1

Test Case Name: testDesignDns(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\guru\DirectNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ when(plan.getPhysicalNetworkId()).thenReturn(1l); when(physicalNetworkDao.findById(physicalNetwork.getId())).thenReturn(physicalNetwork); when(offering.isRedundantRouter()).thenReturn(false); - when(network.getDns1()).thenReturn(ip4Dns[0]); - when(network.getDns2()).thenReturn(ip4Dns[1]); - when(network.getIp6Dns1()).thenReturn(ip6Dns[0]); - when(network.getIp6Dns2()).thenReturn(ip6Dns[1]); + network = MockNetwork.createMockNetwork(ip4Dns[0], ip4Dns[1], ip6Dns[0], ip6Dns[1]); when(networkModel.areServicesSupportedByNetworkOffering(offering.getId(), Network.Service.SecurityGroup)).thenReturn(false); Network config = guru.design(offering, plan, network, owner); assertNotNull(config); assertEquals(ip4Dns[0], config.getDns1()); assertEquals(ip4Dns[1], config.getDns2()); assertEquals(ip6Dns[0], config.getIp6Dns1()); assertEquals(ip6Dns[1], config.getIp6Dns2()); }
Original Test Code (click to expand)
@Test public void testDesignDns() { when(dcDao.findById(dc.getId())).thenReturn(dc); when(plan.getDataCenterId()).thenReturn(1l); when(plan.getPhysicalNetworkId()).thenReturn(1l); when(physicalNetworkDao.findById(physicalNetwork.getId())).thenReturn(physicalNetwork); when(offering.isRedundantRouter()).thenReturn(false); when(network.getDns1()).thenReturn(ip4Dns[0]); when(network.getDns2()).thenReturn(ip4Dns[1]); when(network.getIp6Dns1()).thenReturn(ip6Dns[0]); when(network.getIp6Dns2()).thenReturn(ip6Dns[1]); when(networkModel.areServicesSupportedByNetworkOffering(offering.getId(), Network.Service.SecurityGroup)).thenReturn(false); Network config = guru.design(offering, plan, network, owner); assertNotNull(config); assertEquals(ip4Dns[0], config.getDns1()); assertEquals(ip4Dns[1], config.getDns2()); assertEquals(ip6Dns[0], config.getIp6Dns1()); assertEquals(ip6Dns[1], config.getIp6Dns2()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(String dns1, String dns2, String ip6Dns1, String ip6Dns2) { Network network = Mockito.mock(Network.class); Mockito.when(network.getDns1()).thenReturn(dns1); Mockito.when(network.getDns2()).thenReturn(dns2); Mockito.when(network.getIp6Dns1()).thenReturn(ip6Dns1); Mockito.when(network.getIp6Dns2()).thenReturn(ip6Dns2); return network; } }

Test Case ID #cloudstack_Test_54_2

Test Case Name: testDesignDns(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\guru\ExternalGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ DeploymentPlan plan = Mockito.mock(DeploymentPlan.class); - Network network = Mockito.mock(Network.class); - Mockito.when(network.getDns1()).thenReturn(ip4Dns[0]); - Mockito.when(network.getDns2()).thenReturn(ip4Dns[1]); - Mockito.when(network.getIp6Dns1()).thenReturn(ip6Dns[0]); - Mockito.when(network.getIp6Dns2()).thenReturn(ip6Dns[1]); + Network network = MockNetwork.createMockNetwork(ip4Dns[0], ip4Dns[1], ip6Dns[0], ip6Dns[1]); Account owner = Mockito.mock(Account.class); Network config = guru.design(networkOffering, plan, network, owner); assertNotNull(config);
Original Test Code (click to expand)
@Test public void testDesignDns() { Mockito.when(networkModel.areServicesSupportedByNetworkOffering(Mockito.anyLong(), Mockito.any())).thenReturn(false); Mockito.when(networkModel.networkIsConfiguredForExternalNetworking(Mockito.anyLong(), Mockito.anyLong())).thenReturn(true); NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); Mockito.when(networkOffering.getTrafficType()).thenReturn(Networks.TrafficType.Guest); Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Isolated); DataCenterVO zone = Mockito.mock(DataCenterVO.class); Mockito.when(zone.getNetworkType()).thenReturn(DataCenter.NetworkType.Advanced); Mockito.when(dataCenterDao.findById(Mockito.anyLong())).thenReturn(zone); PhysicalNetworkVO physicalNetwork = Mockito.mock(PhysicalNetworkVO.class); Mockito.when(physicalNetwork.getId()).thenReturn(1L); Mockito.when(physicalNetworkDao.findById(Mockito.anyLong())).thenReturn(physicalNetwork); DeploymentPlan plan = Mockito.mock(DeploymentPlan.class); Network network = Mockito.mock(Network.class); Mockito.when(network.getDns1()).thenReturn(ip4Dns[0]); Mockito.when(network.getDns2()).thenReturn(ip4Dns[1]); Mockito.when(network.getIp6Dns1()).thenReturn(ip6Dns[0]); Mockito.when(network.getIp6Dns2()).thenReturn(ip6Dns[1]); Account owner = Mockito.mock(Account.class); Network config = guru.design(networkOffering, plan, network, owner); assertNotNull(config); assertEquals(ip4Dns[0], config.getDns1()); assertEquals(ip4Dns[1], config.getDns2()); assertEquals(ip6Dns[0], config.getIp6Dns1()); assertEquals(ip6Dns[1], config.getIp6Dns2()); }
Reusable Method for MCI (click to expand)
public class MockNetwork { public static Network createMockNetwork(String dns1, String dns2, String ip6Dns1, String ip6Dns2) { Network network = Mockito.mock(Network.class); Mockito.when(network.getDns1()).thenReturn(dns1); Mockito.when(network.getDns2()).thenReturn(dns2); Mockito.when(network.getIp6Dns1()).thenReturn(ip6Dns1); Mockito.when(network.getIp6Dns2()).thenReturn(ip6Dns2); return network; } }

Mock Clone Instance #cloudstack_MCI_55

Reusable Method

// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_55_1

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ final DeploymentPlan plan = mock(DeploymentPlan.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null);
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_55_2

Test Case Name: testDesignNoElementOnPhysicalNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ final DeploymentPlan plan = mock(DeploymentPlan.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoElementOnPhysicalNetwork() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_55_3

Test Case Name: testDesignNoIsolationMethodSTT(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ final DeploymentPlan plan = mock(DeploymentPlan.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodSTT() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_55_4

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ final DeploymentPlan plan = mock(DeploymentPlan.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Mock Clone Instance #cloudstack_MCI_56

Reusable Method

// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_56_1

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ final DeploymentPlan plan = mock(DeploymentPlan.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null);
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vcs); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_56_2

Test Case Name: testDesignNoIsolationMethodVCS(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ final DeploymentPlan plan = mock(DeploymentPlan.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodVCS() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Test Case ID #cloudstack_Test_56_3

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: network

Suggested Diff
@@ final DeploymentPlan plan = mock(DeploymentPlan.class); - final Network network = mock(Network.class); + // removed local mock; replaced with global field `network` final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Network network; // === Add to @BeforeEach method === @BeforeEach public void setUp() { network = mock(Network.class); } // === Replace local variable in test with === network;

Mock Clone Instance #cloudstack_MCI_57

Reusable Method

// === Declare in class scope === private DiskProfile diskCharacteristics; // === Add to @BeforeEach method === @BeforeEach public void setUp() { diskCharacteristics = Mockito.mock(DiskProfile.class); } // === Replace local variable in test with === diskCharacteristics;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_57_1

Test Case Name: testCreateCommandNoTemplate(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: diskCharacteristics

Suggested Diff
@@ @Test public void testCreateCommandNoTemplate() { - final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); + // removed local mock; replaced with global field `diskCharacteristics` final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.createPhysicalDisk(diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), diskCharacteristics.getSize(), null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@Test public void testCreateCommandNoTemplate() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.createPhysicalDisk(diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), diskCharacteristics.getSize(), null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DiskProfile diskCharacteristics; // === Add to @BeforeEach method === @BeforeEach public void setUp() { diskCharacteristics = Mockito.mock(DiskProfile.class); } // === Replace local variable in test with === diskCharacteristics;

Test Case ID #cloudstack_Test_57_2

Test Case Name: testCreateCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: diskCharacteristics

Suggested Diff
@@ @Test public void testCreateCommand() { - final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); + // removed local mock; replaced with global field `diskCharacteristics` final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final String templateUrl = "http://template"; final boolean executeInSequence = false; - final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); + final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getType()).thenReturn(StoragePoolType.CLVM); - when(libvirtComputingResourceMock.templateToPrimaryDownload(command.getTemplateUrl(), primary, diskCharacteristics.getPath())).thenReturn(vol); + when(libvirtComputingResourceMock.templateToPrimaryDownload(command.getTemplateUrl(), primary, diskCharacteristics.getPath())).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@Test public void testCreateCommand() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final String templateUrl = "http://template"; final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getType()).thenReturn(StoragePoolType.CLVM); when(libvirtComputingResourceMock.templateToPrimaryDownload(command.getTemplateUrl(), primary, diskCharacteristics.getPath())).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DiskProfile diskCharacteristics; // === Add to @BeforeEach method === @BeforeEach public void setUp() { diskCharacteristics = Mockito.mock(DiskProfile.class); } // === Replace local variable in test with === diskCharacteristics;

Test Case ID #cloudstack_Test_57_3

Test Case Name: testCreateCommandCLVM(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: diskCharacteristics

Suggested Diff
@@ @Test public void testCreateCommandCLVM() { - final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); + // removed local mock; replaced with global field `diskCharacteristics` final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final String templateUrl = "http://template"; final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk baseVol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getPhysicalDisk(command.getTemplateUrl())).thenReturn(baseVol); when(poolManager.createDiskFromTemplate(baseVol, diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), primary, baseVol.getSize(), 0, null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@Test public void testCreateCommandCLVM() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final String templateUrl = "http://template"; final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk baseVol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getPhysicalDisk(command.getTemplateUrl())).thenReturn(baseVol); when(poolManager.createDiskFromTemplate(baseVol, diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), primary, baseVol.getSize(), 0, null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DiskProfile diskCharacteristics; // === Add to @BeforeEach method === @BeforeEach public void setUp() { diskCharacteristics = Mockito.mock(DiskProfile.class); } // === Replace local variable in test with === diskCharacteristics;

Mock Clone Instance #cloudstack_MCI_58

Reusable Method

public class MockTungstenGuestNetworkIpAddressDao { public static TungstenGuestNetworkIpAddressDao createMockTungstenGuestNetworkIpAddressDao(TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO) { TungstenGuestNetworkIpAddressDao tungstenGuestNetworkIpAddressDao = mock(TungstenGuestNetworkIpAddressDao.class); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); return tungstenGuestNetworkIpAddressDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_58_1

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: tungstenGuestNetworkIpAddressDao

Suggested Diff
--- original +++ refactored @@ when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); - when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); + tungstenGuestNetworkIpAddressDao = MockTungstenGuestNetworkIpAddressDao.createMockTungstenGuestNetworkIpAddressDao(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockTungstenGuestNetworkIpAddressDao { public static TungstenGuestNetworkIpAddressDao createMockTungstenGuestNetworkIpAddressDao(TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO) { TungstenGuestNetworkIpAddressDao tungstenGuestNetworkIpAddressDao = mock(TungstenGuestNetworkIpAddressDao.class); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); return tungstenGuestNetworkIpAddressDao; } }

Test Case ID #cloudstack_Test_58_2

Test Case Name: applyLBRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: tungstenGuestNetworkIpAddressDao

Suggested Diff
--- Original +++ Refactored @@ when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); - when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); - when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); + tungstenGuestNetworkIpAddressDao = MockTungstenGuestNetworkIpAddressDao.createMockTungstenGuestNetworkIpAddressDao(tungstenGuestNetworkIpAddressVO); + when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockTungstenGuestNetworkIpAddressDao { public static TungstenGuestNetworkIpAddressDao createMockTungstenGuestNetworkIpAddressDao(TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO) { TungstenGuestNetworkIpAddressDao tungstenGuestNetworkIpAddressDao = mock(TungstenGuestNetworkIpAddressDao.class); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); return tungstenGuestNetworkIpAddressDao; } }

Test Case ID #cloudstack_Test_58_3

Test Case Name: applyLBRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: tungstenGuestNetworkIpAddressDao

Suggested Diff
@@ when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); - when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); + tungstenGuestNetworkIpAddressDao = MockTungstenGuestNetworkIpAddressDao.createMockTungstenGuestNetworkIpAddressDao(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList));
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Reusable Method for MCI (click to expand)
public class MockTungstenGuestNetworkIpAddressDao { public static TungstenGuestNetworkIpAddressDao createMockTungstenGuestNetworkIpAddressDao(TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO) { TungstenGuestNetworkIpAddressDao tungstenGuestNetworkIpAddressDao = mock(TungstenGuestNetworkIpAddressDao.class); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); return tungstenGuestNetworkIpAddressDao; } }

Test Case ID #cloudstack_Test_58_4

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: tungstenGuestNetworkIpAddressDao

Suggested Diff
@@ when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); - when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); + tungstenGuestNetworkIpAddressDao = MockTungstenGuestNetworkIpAddressDao.createMockTungstenGuestNetworkIpAddressDao(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); @@
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
public class MockTungstenGuestNetworkIpAddressDao { public static TungstenGuestNetworkIpAddressDao createMockTungstenGuestNetworkIpAddressDao(TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO) { TungstenGuestNetworkIpAddressDao tungstenGuestNetworkIpAddressDao = mock(TungstenGuestNetworkIpAddressDao.class); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); return tungstenGuestNetworkIpAddressDao; } }

Mock Clone Instance #cloudstack_MCI_59

Reusable Method

private static ConfigKey<Integer> createMockConfigKeyWithValueIn(Long zoneId, Integer valueInReturn) { ConfigKey<Integer> configKey = Mockito.mock(ConfigKey.class); when(configKey.valueIn(zoneId)).thenReturn(valueInReturn); return configKey; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_59_1

Test Case Name: testValidateMtuConfigWhenMtusExceedThreshold(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: publicMtuKey

Suggested Diff
@@ Integer publicMtu = 2450; Integer privateMtu = 1500; Long zoneId = 1L; - when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); + publicMtuKey = createMockConfigKeyWithValueIn(zoneId, NetworkService.DEFAULT_MTU); when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); } @@
Original Test Code (click to expand)
@Test public void testValidateMtuConfigWhenMtusExceedThreshold() { Integer publicMtu = 2450; Integer privateMtu = 1500; Long zoneId = 1L; when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValueIn(Long zoneId, Integer valueInReturn) { ConfigKey<Integer> configKey = Mockito.mock(ConfigKey.class); when(configKey.valueIn(zoneId)).thenReturn(valueInReturn); return configKey; }

Test Case ID #cloudstack_Test_59_2

Test Case Name: testValidatePrivateMtuExceedingThreshold(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: publicMtuKey

Suggested Diff
@@ Integer publicMtu = 1500; Integer privateMtu = 2500; Long zoneId = 1L; - when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); + publicMtuKey = createMockConfigKeyWithValueIn(zoneId, NetworkService.DEFAULT_MTU); when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); } @@
Original Test Code (click to expand)
@Test public void testValidatePrivateMtuExceedingThreshold() { Integer publicMtu = 1500; Integer privateMtu = 2500; Long zoneId = 1L; when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValueIn(Long zoneId, Integer valueInReturn) { ConfigKey<Integer> configKey = Mockito.mock(ConfigKey.class); when(configKey.valueIn(zoneId)).thenReturn(valueInReturn); return configKey; }

Test Case ID #cloudstack_Test_59_3

Test Case Name: testValidateMtuConfigWhenMtusExceedThreshold(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: privateMtuKey

Suggested Diff
@@ Integer publicMtu = 2450; Integer privateMtu = 1500; Long zoneId = 1L; - when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); - when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); + when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); + privateMtuKey = createMockConfigKeyWithValueIn(zoneId, NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); }
Original Test Code (click to expand)
@Test public void testValidateMtuConfigWhenMtusExceedThreshold() { Integer publicMtu = 2450; Integer privateMtu = 1500; Long zoneId = 1L; when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValueIn(Long zoneId, Integer valueInReturn) { ConfigKey<Integer> configKey = Mockito.mock(ConfigKey.class); when(configKey.valueIn(zoneId)).thenReturn(valueInReturn); return configKey; }

Test Case ID #cloudstack_Test_59_4

Test Case Name: testValidatePrivateMtuExceedingThreshold(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: privateMtuKey

Suggested Diff
@@ Integer publicMtu = 1500; Integer privateMtu = 2500; Long zoneId = 1L; - when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); - when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); + when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); + privateMtuKey = createMockConfigKeyWithValueIn(zoneId, NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); }
Original Test Code (click to expand)
@Test public void testValidatePrivateMtuExceedingThreshold() { Integer publicMtu = 1500; Integer privateMtu = 2500; Long zoneId = 1L; when(publicMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); when(privateMtuKey.valueIn(zoneId)).thenReturn(NetworkService.DEFAULT_MTU); Pair<Integer, Integer> interfaceMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); Assert.assertNotNull(interfaceMtus); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.first()); Assert.assertEquals(NetworkService.DEFAULT_MTU, interfaceMtus.second()); Mockito.verify(alertManager, Mockito.times(1)).sendAlert(Mockito.any(AlertService.AlertType.class), Mockito.anyLong(), nullable(Long.class), Mockito.anyString(), Mockito.anyString()); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValueIn(Long zoneId, Integer valueInReturn) { ConfigKey<Integer> configKey = Mockito.mock(ConfigKey.class); when(configKey.valueIn(zoneId)).thenReturn(valueInReturn); return configKey; }

Mock Clone Instance #cloudstack_MCI_60

Reusable Method

private static ConfigKey<Integer> createMockConfigKeyWithValue(int value) { ConfigKey<Integer> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.value()).thenReturn(value); return configKeyMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_60_1

Test Case Name: validateGetVmMaxMemoryReturnVmServiceOfferingMaxRAMSize(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\hypervisor\KVMGuruTest.java)

Mock Object Variable Name: vmServiceOfferingMaxRAMSize

Suggested Diff
--- original +++ refactored @@ Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_MEMORY)).thenReturn(null); - ConfigKey<Integer> vmServiceOfferingMaxRAMSize = Mockito.mock(ConfigKey.class); - ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_RAM_SIZE = vmServiceOfferingMaxRAMSize; - Mockito.when(vmServiceOfferingMaxRAMSize.value()).thenReturn(maxMemoryConfig); + ConfigKey<Integer> vmServiceOfferingMaxRAMSize = createMockConfigKeyWithValue(maxMemoryConfig); + ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_RAM_SIZE = vmServiceOfferingMaxRAMSize; long result = guru.getVmMaxMemory(serviceOfferingVoMock, "Vm description", 1l); Assert.assertEquals(ByteScaleUtils.mebibytesToBytes(maxMemoryConfig), result); }
Original Test Code (click to expand)
@Test public void validateGetVmMaxMemoryReturnVmServiceOfferingMaxRAMSize() { int maxMemoryConfig = 64; Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_MEMORY)).thenReturn(null); ConfigKey<Integer> vmServiceOfferingMaxRAMSize = Mockito.mock(ConfigKey.class); ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_RAM_SIZE = vmServiceOfferingMaxRAMSize; Mockito.when(vmServiceOfferingMaxRAMSize.value()).thenReturn(maxMemoryConfig); long result = guru.getVmMaxMemory(serviceOfferingVoMock, "Vm description", 1l); Assert.assertEquals(ByteScaleUtils.mebibytesToBytes(maxMemoryConfig), result); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValue(int value) { ConfigKey<Integer> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.value()).thenReturn(value); return configKeyMock; }

Test Case ID #cloudstack_Test_60_2

Test Case Name: validateGetVmMaxMemoryReturnMaxHostMemory(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\hypervisor\KVMGuruTest.java)

Mock Object Variable Name: vmServiceOfferingMaxRAMSize

Suggested Diff
--- original +++ refactored @@ Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_MEMORY)).thenReturn(null); - ConfigKey<Integer> vmServiceOfferingMaxRAMSize = Mockito.mock(ConfigKey.class); - ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_RAM_SIZE = vmServiceOfferingMaxRAMSize; - Mockito.when(vmServiceOfferingMaxRAMSize.value()).thenReturn(0); + ConfigKey<Integer> vmServiceOfferingMaxRAMSize = createMockConfigKeyWithValue(0); + ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_RAM_SIZE = vmServiceOfferingMaxRAMSize; long result = guru.getVmMaxMemory(serviceOfferingVoMock, "Vm description", maxHostMemory); Assert.assertEquals(maxHostMemory, result); @@
Original Test Code (click to expand)
@Test public void validateGetVmMaxMemoryReturnMaxHostMemory() { long maxHostMemory = ByteScaleUtils.mebibytesToBytes(2000); Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_MEMORY)).thenReturn(null); ConfigKey<Integer> vmServiceOfferingMaxRAMSize = Mockito.mock(ConfigKey.class); ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_RAM_SIZE = vmServiceOfferingMaxRAMSize; Mockito.when(vmServiceOfferingMaxRAMSize.value()).thenReturn(0); long result = guru.getVmMaxMemory(serviceOfferingVoMock, "Vm description", maxHostMemory); Assert.assertEquals(maxHostMemory, result); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValue(int value) { ConfigKey<Integer> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.value()).thenReturn(value); return configKeyMock; }

Test Case ID #cloudstack_Test_60_3

Test Case Name: validateGetVmMaxCpuCoresVmServiceOfferingMaxCPUCores(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\hypervisor\KVMGuruTest.java)

Mock Object Variable Name: vmServiceOfferingMaxCPUCores

Suggested Diff
--- original +++ refactored @@ Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_CPU_NUMBER)).thenReturn(null); - ConfigKey<Integer> vmServiceOfferingMaxCPUCores = Mockito.mock(ConfigKey.class); ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_CPU_CORES = vmServiceOfferingMaxCPUCores; - Mockito.when(vmServiceOfferingMaxCPUCores.value()).thenReturn(maxCpuCoresConfig); + ConfigKey<Integer> vmServiceOfferingMaxCPUCores = createMockConfigKeyWithValue(maxCpuCoresConfig); long result = guru.getVmMaxCpuCores(serviceOfferingVoMock, "Vm description", 1); Assert.assertEquals(maxCpuCoresConfig, result); @@
Original Test Code (click to expand)
@Test public void validateGetVmMaxCpuCoresVmServiceOfferingMaxCPUCores() { int maxCpuCoresConfig = 16; Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_CPU_NUMBER)).thenReturn(null); ConfigKey<Integer> vmServiceOfferingMaxCPUCores = Mockito.mock(ConfigKey.class); ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_CPU_CORES = vmServiceOfferingMaxCPUCores; Mockito.when(vmServiceOfferingMaxCPUCores.value()).thenReturn(maxCpuCoresConfig); long result = guru.getVmMaxCpuCores(serviceOfferingVoMock, "Vm description", 1); Assert.assertEquals(maxCpuCoresConfig, result); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValue(int value) { ConfigKey<Integer> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.value()).thenReturn(value); return configKeyMock; }

Test Case ID #cloudstack_Test_60_4

Test Case Name: validateGetVmMaxCpuCoresReturnMaxHostMemory(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\hypervisor\KVMGuruTest.java)

Mock Object Variable Name: vmServiceOfferingMaxCPUCores

Suggested Diff
@@ Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_CPU_NUMBER)).thenReturn(null); - ConfigKey<Integer> vmServiceOfferingMaxCPUCores = Mockito.mock(ConfigKey.class); + ConfigKey<Integer> vmServiceOfferingMaxCPUCores = createMockConfigKeyWithValue(0); ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_CPU_CORES = vmServiceOfferingMaxCPUCores; - Mockito.when(vmServiceOfferingMaxCPUCores.value()).thenReturn(0); long result = guru.getVmMaxCpuCores(serviceOfferingVoMock, "Vm description", maxHostCpuCores); Assert.assertEquals(maxHostCpuCores, result);
Original Test Code (click to expand)
@Test public void validateGetVmMaxCpuCoresReturnMaxHostMemory() { int maxHostCpuCores = 64; Mockito.when(serviceOfferingVoMock.getDetail(ApiConstants.MAX_CPU_NUMBER)).thenReturn(null); ConfigKey<Integer> vmServiceOfferingMaxCPUCores = Mockito.mock(ConfigKey.class); ConfigurationManagerImpl.VM_SERVICE_OFFERING_MAX_CPU_CORES = vmServiceOfferingMaxCPUCores; Mockito.when(vmServiceOfferingMaxCPUCores.value()).thenReturn(0); long result = guru.getVmMaxCpuCores(serviceOfferingVoMock, "Vm description", maxHostCpuCores); Assert.assertEquals(maxHostCpuCores, result); }
Reusable Method for MCI (click to expand)
private static ConfigKey<Integer> createMockConfigKeyWithValue(int value) { ConfigKey<Integer> configKeyMock = Mockito.mock(ConfigKey.class); Mockito.when(configKeyMock.value()).thenReturn(value); return configKeyMock; }

Mock Clone Instance #cloudstack_MCI_61

Reusable Method

private static Script createMockScript() { Script mockScript = Mockito.mock(Script.class); PowerMockito.when(mockScript.execute()).thenReturn(null); return mockScript; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_61_1

Test Case Name: testProcessWhenVirtualSizeThrowsException(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\OVAProcessorTest.java)

Mock Object Variable Name: mockScript

Suggested Diff
--- original +++ refactored @@ Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000l); Mockito.doThrow(new InternalErrorException("virtual size calculation failed")).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); - Script mockScript = Mockito.mock(Script.class); - PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); - PowerMockito.when(mockScript.execute()).thenReturn(null); + Script mockScript = createMockScript(); + PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); processor.process(templatePath, null, templateName); @@
Original Test Code (click to expand)
@Test(expected = InternalErrorException.class) public void testProcessWhenVirtualSizeThrowsException() throws Exception { String templatePath = "/tmp"; String templateName = "template"; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000l); Mockito.doThrow(new InternalErrorException("virtual size calculation failed")).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); Script mockScript = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); PowerMockito.when(mockScript.execute()).thenReturn(null); processor.process(templatePath, null, templateName); }
Reusable Method for MCI (click to expand)
private static Script createMockScript() { Script mockScript = Mockito.mock(Script.class); PowerMockito.when(mockScript.execute()).thenReturn(null); return mockScript; }

Test Case ID #cloudstack_Test_61_2

Test Case Name: testProcess(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\OVAProcessorTest.java)

Mock Object Variable Name: mockScript

Suggested Diff
--- original +++ refactored @@ Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); - Script mockScript = Mockito.mock(Script.class); + Script mockScript = createMockScript(); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); - PowerMockito.when(mockScript.execute()).thenReturn(null); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.OVA, info.format); Assert.assertEquals("actual size:", actualSize, info.size); Assert.assertEquals("virtual size:", virtualSize, info.virtualSize); Assert.assertEquals("template name:", templateName + ".ova", info.filename); @@
Original Test Code (click to expand)
@Test public void testProcess() throws Exception { String templatePath = "/tmp"; String templateName = "template"; long virtualSize = 2000; long actualSize = 1000; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); Script mockScript = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); PowerMockito.when(mockScript.execute()).thenReturn(null); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.OVA, info.format); Assert.assertEquals("actual size:", actualSize, info.size); Assert.assertEquals("virtual size:", virtualSize, info.virtualSize); Assert.assertEquals("template name:", templateName + ".ova", info.filename); }
Reusable Method for MCI (click to expand)
private static Script createMockScript() { Script mockScript = Mockito.mock(Script.class); PowerMockito.when(mockScript.execute()).thenReturn(null); return mockScript; }

Mock Clone Instance #cloudstack_MCI_62

Reusable Method

private static Script createMockScript(String executeReturn) { Script scriptMock = Mockito.mock(Script.class); Mockito.doReturn(executeReturn).when(scriptMock).execute(); return scriptMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_62_1

Test Case Name: linkUserDataTestUserDataFilePathExistAndExecutionPresentedSomeError(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: scriptMock

Suggested Diff
@@ PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); - Script scriptMock = Mockito.mock(Script.class); - PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); - Mockito.doReturn("message").when(scriptMock).execute(); + Script scriptMock = createMockScript("message"); + PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); ConfigDriveBuilder.linkUserData("test"); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void linkUserDataTestUserDataFilePathExistAndExecutionPresentedSomeError() throws Exception { File fileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(fileMock).exists(); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn("message").when(scriptMock).execute(); ConfigDriveBuilder.linkUserData("test"); }
Reusable Method for MCI (click to expand)
private static Script createMockScript(String executeReturn) { Script scriptMock = Mockito.mock(Script.class); Mockito.doReturn(executeReturn).when(scriptMock).execute(); return scriptMock; }

Test Case ID #cloudstack_Test_62_2

Test Case Name: linkUserDataTest(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: scriptMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); - Script scriptMock = Mockito.mock(Script.class); - PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); - Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); + Script scriptMock = createMockScript(StringUtils.EMPTY); + PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); String tempDirName = "test"; ConfigDriveBuilder.linkUserData(tempDirName); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.cloudStackConfigDriveName + "userdata/user_data.txt"); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.openStackConfigDriveName + "user_data"); Mockito.verify(scriptMock).execute(); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void linkUserDataTest() throws Exception { File fileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(fileMock).exists(); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); String tempDirName = "test"; ConfigDriveBuilder.linkUserData(tempDirName); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.cloudStackConfigDriveName + "userdata/user_data.txt"); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.openStackConfigDriveName + "user_data"); Mockito.verify(scriptMock).execute(); }
Reusable Method for MCI (click to expand)
private static Script createMockScript(String executeReturn) { Script scriptMock = Mockito.mock(Script.class); Mockito.doReturn(executeReturn).when(scriptMock).execute(); return scriptMock; }

Test Case ID #cloudstack_Test_62_3

Test Case Name: generateAndRetrieveIsoAsBase64IsoTestGenIsoFailure(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: scriptMock

Suggested Diff
@@ PowerMockito.mockStatic(Script.class, ConfigDriveBuilder.class); - Script scriptMock = Mockito.mock(Script.class); - PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); - Mockito.doReturn("scriptMessage").when(scriptMock).execute(); + Script scriptMock = createMockScript("scriptMessage"); + PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, method).withArguments(nullable(String.class), nullable(String.class), nullable(String.class)).thenCallRealMethod(); Method getProgramToGenerateIsoMethod = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("getProgramToGenerateIso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, getProgramToGenerateIsoMethod).withNoArguments().thenReturn("/usr/bin/genisoimage"); ConfigDriveBuilder.generateAndRetrieveIsoAsBase64Iso("isoFileName", "driveLabel", "tempDirName"); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test(expected = CloudRuntimeException.class) @PrepareForTest({ Script.class, ConfigDriveBuilder.class }) public void generateAndRetrieveIsoAsBase64IsoTestGenIsoFailure() throws Exception { PowerMockito.mockStatic(Script.class, ConfigDriveBuilder.class); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn("scriptMessage").when(scriptMock).execute(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, method).withArguments(nullable(String.class), nullable(String.class), nullable(String.class)).thenCallRealMethod(); Method getProgramToGenerateIsoMethod = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("getProgramToGenerateIso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, getProgramToGenerateIsoMethod).withNoArguments().thenReturn("/usr/bin/genisoimage"); ConfigDriveBuilder.generateAndRetrieveIsoAsBase64Iso("isoFileName", "driveLabel", "tempDirName"); }
Reusable Method for MCI (click to expand)
private static Script createMockScript(String executeReturn) { Script scriptMock = Mockito.mock(Script.class); Mockito.doReturn(executeReturn).when(scriptMock).execute(); return scriptMock; }

Test Case ID #cloudstack_Test_62_4

Test Case Name: generateAndRetrieveIsoAsBase64IsoTestIsoTooBig(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: scriptMock

Suggested Diff
--- original +++ refactored @@ File fileMock = Mockito.mock(File.class); PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(fileMock); - Script scriptMock = Mockito.mock(Script.class); - PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); - Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); + Script scriptMock = createMockScript(StringUtils.EMPTY); + PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn(64L * 1024L * 1024L + 1l).when(fileMock).length(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test(expected = CloudRuntimeException.class) @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void generateAndRetrieveIsoAsBase64IsoTestIsoTooBig() throws Exception { PowerMockito.mockStatic(File.class, Script.class, ConfigDriveBuilder.class); File fileMock = Mockito.mock(File.class); PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); Mockito.doReturn(64L * 1024L * 1024L + 1l).when(fileMock).length(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, method).withArguments(nullable(String.class), nullable(String.class), nullable(String.class)).thenCallRealMethod(); Method getProgramToGenerateIsoMethod = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("getProgramToGenerateIso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, getProgramToGenerateIsoMethod).withNoArguments().thenReturn("/usr/bin/genisoimage"); ConfigDriveBuilder.generateAndRetrieveIsoAsBase64Iso("isoFileName", "driveLabel", "tempDirName"); }
Reusable Method for MCI (click to expand)
private static Script createMockScript(String executeReturn) { Script scriptMock = Mockito.mock(Script.class); Mockito.doReturn(executeReturn).when(scriptMock).execute(); return scriptMock; }

Test Case ID #cloudstack_Test_62_5

Test Case Name: generateAndRetrieveIsoAsBase64IsoTest(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: scriptMock

Suggested Diff
--- original +++ refactored @@ File fileMock = Mockito.mock(File.class); PowerMockito.whenNew(File.class).withArguments("tempDirName", "isoFileName").thenReturn(fileMock); - Script scriptMock = Mockito.mock(Script.class); - PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); - Mockito.when(fileMock.getAbsolutePath()).thenReturn("absolutePath"); - Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); + Script scriptMock = createMockScript(StringUtils.EMPTY); + PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); + Mockito.when(fileMock.getAbsolutePath()).thenReturn("absolutePath"); Mockito.doReturn(64L * 1024L * 1024L).when(fileMock).length(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); @@
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void generateAndRetrieveIsoAsBase64IsoTest() throws Exception { PowerMockito.mockStatic(File.class, Script.class, ConfigDriveBuilder.class); File fileMock = Mockito.mock(File.class); PowerMockito.whenNew(File.class).withArguments("tempDirName", "isoFileName").thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.when(fileMock.getAbsolutePath()).thenReturn("absolutePath"); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); Mockito.doReturn(64L * 1024L * 1024L).when(fileMock).length(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, method).withArguments(nullable(String.class), nullable(String.class), nullable(String.class)).thenCallRealMethod(); Method getProgramToGenerateIsoMethod = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("getProgramToGenerateIso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, getProgramToGenerateIsoMethod).withNoArguments().thenReturn("/usr/bin/genisoimage"); ConfigDriveBuilder.generateAndRetrieveIsoAsBase64Iso("isoFileName", "driveLabel", "tempDirName"); InOrder inOrder = Mockito.inOrder(scriptMock); inOrder.verify(scriptMock).add("-o", "absolutePath"); inOrder.verify(scriptMock).add("-ldots"); inOrder.verify(scriptMock).add("-allow-lowercase"); inOrder.verify(scriptMock).add("-allow-multidot"); inOrder.verify(scriptMock).add("-cache-inodes"); inOrder.verify(scriptMock).add("-l"); inOrder.verify(scriptMock).add("-quiet"); inOrder.verify(scriptMock).add("-J"); inOrder.verify(scriptMock).add("-r"); inOrder.verify(scriptMock).add("-V", "driveLabel"); inOrder.verify(scriptMock).add("tempDirName"); inOrder.verify(scriptMock).execute(); PowerMockito.verifyStatic(ConfigDriveBuilder.class); ConfigDriveBuilder.fileToBase64String(nullable(File.class)); }
Reusable Method for MCI (click to expand)
private static Script createMockScript(String executeReturn) { Script scriptMock = Mockito.mock(Script.class); Mockito.doReturn(executeReturn).when(scriptMock).execute(); return scriptMock; }

Mock Clone Instance #cloudstack_MCI_63

Reusable Method

private static SearchBuilder<UserDataVO> createMockSearchBuilder(UserDataVO userData, SearchCriteria<UserDataVO> sc) { SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(sb.entity()).thenReturn(userData); when(sb.create()).thenReturn(sc); return sb; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_63_1

Test Case Name: testListUserDataById(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: sb

Suggested Diff
--- original +++ refactored @@ UserDataVO userData = Mockito.mock(UserDataVO.class); - SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); - when(_userDataDao.createSearchBuilder()).thenReturn(sb); - when(sb.entity()).thenReturn(userData); + SearchBuilder<UserDataVO> sb = createMockSearchBuilder(userData, sc); + when(_userDataDao.createSearchBuilder()).thenReturn(sb); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); - when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); @@
Original Test Code (click to expand)
@Test public void testListUserDataById() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
private static SearchBuilder<UserDataVO> createMockSearchBuilder(UserDataVO userData, SearchCriteria<UserDataVO> sc) { SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(sb.entity()).thenReturn(userData); when(sb.create()).thenReturn(sc); return sb; }

Test Case ID #cloudstack_Test_63_2

Test Case Name: testListUserDataByName(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: sb

Suggested Diff
--- original +++ refactored @@ UserDataVO userData = Mockito.mock(UserDataVO.class); - SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); - when(_userDataDao.createSearchBuilder()).thenReturn(sb); - when(sb.entity()).thenReturn(userData); + SearchBuilder<UserDataVO> sb = createMockSearchBuilder(userData, sc); + when(_userDataDao.createSearchBuilder()).thenReturn(sb); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); - when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); @@
Original Test Code (click to expand)
@Test public void testListUserDataByName() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getName()).thenReturn("testSearchUserdataName"); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
private static SearchBuilder<UserDataVO> createMockSearchBuilder(UserDataVO userData, SearchCriteria<UserDataVO> sc) { SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(sb.entity()).thenReturn(userData); when(sb.create()).thenReturn(sc); return sb; }

Test Case ID #cloudstack_Test_63_3

Test Case Name: testListUserDataByKeyword(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: sb

Suggested Diff
--- original +++ refactored @@ UserDataVO userData = Mockito.mock(UserDataVO.class); - SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); - when(_userDataDao.createSearchBuilder()).thenReturn(sb); - when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); - when(sb.create()).thenReturn(sc); + SearchBuilder<UserDataVO> sb = createMockSearchBuilder(userData, sc); + when(_userDataDao.createSearchBuilder()).thenReturn(sb); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); @@
Original Test Code (click to expand)
@Test public void testListUserDataByKeyword() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getKeyword()).thenReturn("testSearchUserdataKeyword"); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
private static SearchBuilder<UserDataVO> createMockSearchBuilder(UserDataVO userData, SearchCriteria<UserDataVO> sc) { SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(sb.entity()).thenReturn(userData); when(sb.create()).thenReturn(sc); return sb; }

Mock Clone Instance #cloudstack_MCI_64

Reusable Method

private static StorageFilerTO createMockStorageFilerTO(String uuid) { StorageFilerTO storageFilerTO = Mockito.mock(StorageFilerTO.class); when(storageFilerTO.getUuid()).thenReturn(uuid); return storageFilerTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_64_1

Test Case Name: testMigrateWithStorageCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: storage1

Suggested Diff
--- original +++ refactored @@ final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); - final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO storage1 = createMockStorageFilerTO(uuid); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); @@ when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); - when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(String uuid) { StorageFilerTO storageFilerTO = Mockito.mock(StorageFilerTO.class); when(storageFilerTO.getUuid()).thenReturn(uuid); return storageFilerTO; }

Test Case ID #cloudstack_Test_64_2

Test Case Name: testMigrateWithStorageCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: storage2

Suggested Diff
--- original +++ refactored @@ final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); - final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO storage2 = createMockStorageFilerTO(uuid); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); @@ when(storage1.getUuid()).thenReturn(uuid); - when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(String uuid) { StorageFilerTO storageFilerTO = Mockito.mock(StorageFilerTO.class); when(storageFilerTO.getUuid()).thenReturn(uuid); return storageFilerTO; }

Test Case ID #cloudstack_Test_64_3

Test Case Name: testMigrateWithStorageReceiveCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: storage1

Suggested Diff
--- original +++ refactored @@ final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); - final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO storage1 = createMockStorageFilerTO(uuid); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); @@ when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); - when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageReceiveCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network network = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Network nw1 = Mockito.mock(Network.class); final Network nw2 = Mockito.mock(Network.class); final Network nw3 = Mockito.mock(Network.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final MigrateWithStorageReceiveCommand migrateStorageCommand = new MigrateWithStorageReceiveCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); try { when(xenServer610Resource.getNetwork(conn, nicTO1)).thenReturn(nw1); when(xenServer610Resource.getNetwork(conn, nicTO2)).thenReturn(nw2); when(xenServer610Resource.getNetwork(conn, nicTO3)).thenReturn(nw3); when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(network); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(String uuid) { StorageFilerTO storageFilerTO = Mockito.mock(StorageFilerTO.class); when(storageFilerTO.getUuid()).thenReturn(uuid); return storageFilerTO; }

Test Case ID #cloudstack_Test_64_4

Test Case Name: testMigrateWithStorageReceiveCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: storage2

Suggested Diff
--- original +++ refactored @@ final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); - final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO storage2 = createMockStorageFilerTO(uuid); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); @@ when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); - when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); try { @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageReceiveCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network network = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Network nw1 = Mockito.mock(Network.class); final Network nw2 = Mockito.mock(Network.class); final Network nw3 = Mockito.mock(Network.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final MigrateWithStorageReceiveCommand migrateStorageCommand = new MigrateWithStorageReceiveCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); try { when(xenServer610Resource.getNetwork(conn, nicTO1)).thenReturn(nw1); when(xenServer610Resource.getNetwork(conn, nicTO2)).thenReturn(nw2); when(xenServer610Resource.getNetwork(conn, nicTO3)).thenReturn(nw3); when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(network); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(String uuid) { StorageFilerTO storageFilerTO = Mockito.mock(StorageFilerTO.class); when(storageFilerTO.getUuid()).thenReturn(uuid); return storageFilerTO; }

Mock Clone Instance #cloudstack_MCI_65

Reusable Method

private static StorageFilerTO createMockStorageFilerTO(StoragePoolType type) { StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); when(pool.getType()).thenReturn(type); return pool; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_65_1

Test Case Name: testResizeVolumeCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
--- original +++ refactored @@ final String path = "nfs:/127.0.0.1/storage/secondary"; - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO pool = createMockStorageFilerTO(StoragePoolType.RBD); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = true; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final StorageVol v = Mockito.mock(StorageVol.class); final Domain vm = Mockito.mock(Domain.class); final DomainInfo info = Mockito.mock(DomainInfo.class); final DomainState state = DomainInfo.DomainState.VIR_DOMAIN_RUNNING; info.state = state; - when(pool.getType()).thenReturn(StoragePoolType.RBD); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(libvirtComputingResourceMock.getResizeScriptType(storagePool, vol)).thenReturn("FILE"); when(storagePool.getType()).thenReturn(StoragePoolType.RBD); when(vol.getFormat()).thenReturn(PhysicalDiskFormat.FILE); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnection()).thenReturn(conn); when(conn.storageVolLookupByPath(path)).thenReturn(v); when(libvirtUtilitiesHelper.getConnectionByVmName(vmInstance)).thenReturn(conn); when(conn.domainLookupByName(vmInstance)).thenReturn(vm); when(vm.getInfo()).thenReturn(info); when(conn.getLibVirVersion()).thenReturn(10010l); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(2)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnection(); verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vmInstance); } catch (final LibvirtException e) { fail(e.getMessage()); } @@
Original Test Code (click to expand)
@Test public void testResizeVolumeCommand() { final String path = "nfs:/127.0.0.1/storage/secondary"; final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = true; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final StorageVol v = Mockito.mock(StorageVol.class); final Domain vm = Mockito.mock(Domain.class); final DomainInfo info = Mockito.mock(DomainInfo.class); final DomainState state = DomainInfo.DomainState.VIR_DOMAIN_RUNNING; info.state = state; when(pool.getType()).thenReturn(StoragePoolType.RBD); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(libvirtComputingResourceMock.getResizeScriptType(storagePool, vol)).thenReturn("FILE"); when(storagePool.getType()).thenReturn(StoragePoolType.RBD); when(vol.getFormat()).thenReturn(PhysicalDiskFormat.FILE); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnection()).thenReturn(conn); when(conn.storageVolLookupByPath(path)).thenReturn(v); when(libvirtUtilitiesHelper.getConnectionByVmName(vmInstance)).thenReturn(conn); when(conn.domainLookupByName(vmInstance)).thenReturn(vm); when(vm.getInfo()).thenReturn(info); when(conn.getLibVirVersion()).thenReturn(10010l); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(2)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnection(); verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vmInstance); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(StoragePoolType type) { StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); when(pool.getType()).thenReturn(type); return pool; }

Test Case ID #cloudstack_Test_65_2

Test Case Name: testResizeVolumeCommandLinstorNotifyOnly(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
--- original +++ refactored @@ final String path = "/dev/drbd1000"; - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO pool = createMockStorageFilerTO(StoragePoolType.Linstor); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = false; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final DomainInfo info = Mockito.mock(DomainInfo.class); final DomainState state = DomainInfo.DomainState.VIR_DOMAIN_RUNNING; info.state = state; - when(pool.getType()).thenReturn(StoragePoolType.Linstor); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(storagePool.getType()).thenReturn(StoragePoolType.Linstor); when(vol.getFormat()).thenReturn(PhysicalDiskFormat.RAW); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vmInstance)).thenReturn(conn); when(conn.domainLookupByName(vmInstance)).thenReturn(vm); when(vm.getInfo()).thenReturn(info); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(0)).getResizeScriptType(storagePool, vol); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(0)).getConnection(); verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vmInstance); } catch (final LibvirtException e) { fail(e.getMessage()); } @@
Original Test Code (click to expand)
@Test public void testResizeVolumeCommandLinstorNotifyOnly() { final String path = "/dev/drbd1000"; final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = false; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final DomainInfo info = Mockito.mock(DomainInfo.class); final DomainState state = DomainInfo.DomainState.VIR_DOMAIN_RUNNING; info.state = state; when(pool.getType()).thenReturn(StoragePoolType.Linstor); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(storagePool.getType()).thenReturn(StoragePoolType.Linstor); when(vol.getFormat()).thenReturn(PhysicalDiskFormat.RAW); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vmInstance)).thenReturn(conn); when(conn.domainLookupByName(vmInstance)).thenReturn(vm); when(vm.getInfo()).thenReturn(info); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(0)).getResizeScriptType(storagePool, vol); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(0)).getConnection(); verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vmInstance); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(StoragePoolType type) { StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); when(pool.getType()).thenReturn(type); return pool; }

Test Case ID #cloudstack_Test_65_3

Test Case Name: testResizeVolumeCommandShrink(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
--- original +++ refactored @@ final String path = "nfs:/127.0.0.1/storage/secondary"; - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO pool = createMockStorageFilerTO(StoragePoolType.Filesystem); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = true; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); - when(pool.getType()).thenReturn(StoragePoolType.Filesystem); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(libvirtComputingResourceMock.getResizeScriptType(storagePool, vol)).thenReturn("QCOW2"); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testResizeVolumeCommandShrink() { final String path = "nfs:/127.0.0.1/storage/secondary"; final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = true; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(pool.getType()).thenReturn(StoragePoolType.Filesystem); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(libvirtComputingResourceMock.getResizeScriptType(storagePool, vol)).thenReturn("QCOW2"); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(StoragePoolType type) { StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); when(pool.getType()).thenReturn(type); return pool; }

Test Case ID #cloudstack_Test_65_4

Test Case Name: testResizeVolumeCommandException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
--- original +++ refactored @@ final String path = "nfs:/127.0.0.1/storage/secondary"; - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO pool = createMockStorageFilerTO(StoragePoolType.RBD); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = false; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); - when(pool.getType()).thenReturn(StoragePoolType.RBD); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(libvirtComputingResourceMock.getResizeScriptType(storagePool, vol)).thenReturn("FILE"); when(storagePool.getType()).thenReturn(StoragePoolType.RBD); when(vol.getFormat()).thenReturn(PhysicalDiskFormat.FILE); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnection()).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnection(); } catch (final LibvirtException e) { fail(e.getMessage()); } @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testResizeVolumeCommandException() { final String path = "nfs:/127.0.0.1/storage/secondary"; final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = false; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); when(pool.getType()).thenReturn(StoragePoolType.RBD); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenReturn(vol); when(vol.getPath()).thenReturn(path); when(libvirtComputingResourceMock.getResizeScriptType(storagePool, vol)).thenReturn("FILE"); when(storagePool.getType()).thenReturn(StoragePoolType.RBD); when(vol.getFormat()).thenReturn(PhysicalDiskFormat.FILE); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnection()).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnection(); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(StoragePoolType type) { StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); when(pool.getType()).thenReturn(type); return pool; }

Test Case ID #cloudstack_Test_65_5

Test Case Name: testResizeVolumeCommandException2(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
--- original +++ refactored @@ final String path = "nfs:/127.0.0.1/storage/secondary"; - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + final StorageFilerTO pool = createMockStorageFilerTO(StoragePoolType.RBD); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = false; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); - when(pool.getType()).thenReturn(StoragePoolType.RBD); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testResizeVolumeCommandException2() { final String path = "nfs:/127.0.0.1/storage/secondary"; final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final Long currentSize = 100l; final Long newSize = 200l; final boolean shrinkOk = false; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool storagePool = Mockito.mock(KVMStoragePool.class); when(pool.getType()).thenReturn(StoragePoolType.RBD); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(storagePool); when(storagePool.getPhysicalDisk(path)).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
private static StorageFilerTO createMockStorageFilerTO(StoragePoolType type) { StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); when(pool.getType()).thenReturn(type); return pool; }

Mock Clone Instance #cloudstack_MCI_66

Reusable Method

// === Declare in class scope === private StorageFilerTO pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StorageFilerTO.class); } // === Replace local variable in test with === pool;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_66_1

Test Case Name: testCreateCommandNoTemplate(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreateCommandNoTemplate() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + // removed local mock; replaced with global field `pool` final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.createPhysicalDisk(diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), diskCharacteristics.getSize(), null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@Test public void testCreateCommandNoTemplate() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.createPhysicalDisk(diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), diskCharacteristics.getSize(), null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StorageFilerTO pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StorageFilerTO.class); } // === Replace local variable in test with === pool;

Test Case ID #cloudstack_Test_66_2

Test Case Name: testCreateCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreateCommand() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + // removed local mock; replaced with global field `pool` final String templateUrl = "http://template"; final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); - when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); + when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getType()).thenReturn(StoragePoolType.CLVM); when(libvirtComputingResourceMock.templateToPrimaryDownload(command.getTemplateUrl(), primary, diskCharacteristics.getPath())).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); - verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); + verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@Test public void testCreateCommand() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final String templateUrl = "http://template"; final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getType()).thenReturn(StoragePoolType.CLVM); when(libvirtComputingResourceMock.templateToPrimaryDownload(command.getTemplateUrl(), primary, diskCharacteristics.getPath())).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StorageFilerTO pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StorageFilerTO.class); } // === Replace local variable in test with === pool;

Test Case ID #cloudstack_Test_66_3

Test Case Name: testCreateCommandCLVM(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreateCommandCLVM() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + // removed local mock; replaced with global field `pool` final String templateUrl = "http://template"; final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk baseVol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getPhysicalDisk(command.getTemplateUrl())).thenReturn(baseVol); when(poolManager.createDiskFromTemplate(baseVol, diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), primary, baseVol.getSize(), 0, null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@Test public void testCreateCommandCLVM() { final DiskProfile diskCharacteristics = Mockito.mock(DiskProfile.class); final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final String templateUrl = "http://template"; final boolean executeInSequence = false; final CreateCommand command = new CreateCommand(diskCharacteristics, templateUrl, pool, executeInSequence); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk baseVol = Mockito.mock(KVMPhysicalDisk.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(primary.getPhysicalDisk(command.getTemplateUrl())).thenReturn(baseVol); when(poolManager.createDiskFromTemplate(baseVol, diskCharacteristics.getPath(), diskCharacteristics.getProvisioningType(), primary, baseVol.getSize(), 0, null)).thenReturn(vol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StorageFilerTO pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StorageFilerTO.class); } // === Replace local variable in test with === pool;

Test Case ID #cloudstack_Test_66_4

Test Case Name: testResizeVolumeCommandSameSize(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testResizeVolumeCommandSameSize() { final String path = "nfs:/127.0.0.1/storage/secondary"; - final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); + // removed local mock; replaced with global field `pool` final Long currentSize = 100l; final Long newSize = 100l; final boolean shrinkOk = false; final String vmInstance = "Test"; - final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); + final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testResizeVolumeCommandSameSize() { final String path = "nfs:/127.0.0.1/storage/secondary"; final StorageFilerTO pool = Mockito.mock(StorageFilerTO.class); final Long currentSize = 100l; final Long newSize = 100l; final boolean shrinkOk = false; final String vmInstance = "Test"; final ResizeVolumeCommand command = new ResizeVolumeCommand(path, pool, currentSize, newSize, shrinkOk, vmInstance, null); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StorageFilerTO pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StorageFilerTO.class); } // === Replace local variable in test with === pool;

Mock Clone Instance #cloudstack_MCI_67

Reusable Method

public class MockProject { public static Project createMockProject(long id) { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(id); return project; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_67_1

Test Case Name: testGetEntityOwnerIdForProject(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\ActivateProjectCmdTest.java)

Mock Object Variable Name: project

Suggested Diff
--- original +++ refactored @@ @Test public void testGetEntityOwnerIdForProject() { - Project project = Mockito.mock(Project.class); - Mockito.when(project.getId()).thenReturn(2L); + Project project = MockProject.createMockProject(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); activateProjectCmd._projectService = projectService; Assert.assertEquals(2L, activateProjectCmd.getEntityOwnerId()); } @@
Original Test Code (click to expand)
@Test public void testGetEntityOwnerIdForProject() { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); activateProjectCmd._projectService = projectService; Assert.assertEquals(2L, activateProjectCmd.getEntityOwnerId()); }
Reusable Method for MCI (click to expand)
public class MockProject { public static Project createMockProject(long id) { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(id); return project; } }

Test Case ID #cloudstack_Test_67_2

Test Case Name: testGetEntityOwnerIdForProject(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\AddAccountToProjectCmdTest.java)

Mock Object Variable Name: project

Suggested Diff
--- original +++ refactored @@ public void testGetEntityOwnerIdForProject() { - Project project = Mockito.mock(Project.class); - Mockito.when(project.getId()).thenReturn(2L); + Project project = MockProject.createMockProject(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); addAccountToProjectCmd._projectService = projectService; Assert.assertEquals(2L, addAccountToProjectCmd.getEntityOwnerId()); }
Original Test Code (click to expand)
/** * * * Condition not handled in the code * * *** */ /* * @Test public void testGetEntityOwnerIdForNullProject() { * * ProjectService projectService = Mockito.mock(ProjectService.class); * Mockito * .when(projectService.getProject(Mockito.anyLong())).thenReturn(null); * addAccountToProjectCmd._projectService = projectService; * * try { addAccountToProjectCmd.getEntityOwnerId(); } * catch(InvalidParameterValueException exception) { * Assert.assertEquals("Unable to find project by id 2", * exception.getLocalizedMessage()); } * * } */ @Test public void testGetEntityOwnerIdForProject() { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); addAccountToProjectCmd._projectService = projectService; Assert.assertEquals(2L, addAccountToProjectCmd.getEntityOwnerId()); }
Reusable Method for MCI (click to expand)
public class MockProject { public static Project createMockProject(long id) { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(id); return project; } }

Mock Clone Instance #cloudstack_MCI_68

Reusable Method

private static DeleteGuestNetworkIpv6PrefixCmd createMockDeleteGuestNetworkIpv6PrefixCmd(Long idReturn) { DeleteGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(DeleteGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getId()).thenReturn(idReturn); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_68_1

Test Case Name: testUsedDeleteDataCenterGuestIpv6Prefix(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ final Long prefixId = 1L; - DeleteGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(DeleteGuestNetworkIpv6PrefixCmd.class); - Mockito.when(cmd.getId()).thenReturn(prefixId); + DeleteGuestNetworkIpv6PrefixCmd cmd = createMockDeleteGuestNetworkIpv6PrefixCmd(prefixId); DataCenterGuestIpv6PrefixVO prefixVO = Mockito.mock(DataCenterGuestIpv6PrefixVO.class); Mockito.when(prefixVO.getId()).thenReturn(prefixId); Mockito.when(dataCenterGuestIpv6PrefixDao.findById(Mockito.anyLong())).thenReturn(prefixVO); Mockito.when(ipv6GuestPrefixSubnetNetworkMapDao.listUsedByPrefix(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(Ipv6GuestPrefixSubnetNetworkMapVO.class))); configurationMgr.deleteDataCenterGuestIpv6Prefix(cmd); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testUsedDeleteDataCenterGuestIpv6Prefix() { final Long prefixId = 1L; DeleteGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(DeleteGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getId()).thenReturn(prefixId); DataCenterGuestIpv6PrefixVO prefixVO = Mockito.mock(DataCenterGuestIpv6PrefixVO.class); Mockito.when(prefixVO.getId()).thenReturn(prefixId); Mockito.when(dataCenterGuestIpv6PrefixDao.findById(Mockito.anyLong())).thenReturn(prefixVO); Mockito.when(ipv6GuestPrefixSubnetNetworkMapDao.listUsedByPrefix(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(Ipv6GuestPrefixSubnetNetworkMapVO.class))); configurationMgr.deleteDataCenterGuestIpv6Prefix(cmd); }
Reusable Method for MCI (click to expand)
private static DeleteGuestNetworkIpv6PrefixCmd createMockDeleteGuestNetworkIpv6PrefixCmd(Long idReturn) { DeleteGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(DeleteGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getId()).thenReturn(idReturn); return cmd; }

Test Case ID #cloudstack_Test_68_2

Test Case Name: testDeleteDataCenterGuestIpv6Prefix(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ final Long prefixId = 1L; - DeleteGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(DeleteGuestNetworkIpv6PrefixCmd.class); - Mockito.when(cmd.getId()).thenReturn(prefixId); + DeleteGuestNetworkIpv6PrefixCmd cmd = createMockDeleteGuestNetworkIpv6PrefixCmd(prefixId); DataCenterGuestIpv6PrefixVO prefixVO = Mockito.mock(DataCenterGuestIpv6PrefixVO.class); Mockito.when(prefixVO.getId()).thenReturn(prefixId); Mockito.when(dataCenterGuestIpv6PrefixDao.findById(Mockito.anyLong())).thenReturn(prefixVO); Mockito.when(ipv6GuestPrefixSubnetNetworkMapDao.listUsedByPrefix(Mockito.anyLong())).thenReturn(new ArrayList<>()); final List<Long> removedPrefix = new ArrayList<>(); Mockito.when(dataCenterGuestIpv6PrefixDao.remove(Mockito.anyLong())).thenAnswer((Answer<Boolean>) invocation -> { removedPrefix.add(invocation.getArgument(0)); return true; }); configurationMgr.deleteDataCenterGuestIpv6Prefix(cmd); Assert.assertEquals(1, removedPrefix.size()); Assert.assertEquals(prefixId, removedPrefix.get(0)); @@
Original Test Code (click to expand)
@Test public void testDeleteDataCenterGuestIpv6Prefix() { final Long prefixId = 1L; DeleteGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(DeleteGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getId()).thenReturn(prefixId); DataCenterGuestIpv6PrefixVO prefixVO = Mockito.mock(DataCenterGuestIpv6PrefixVO.class); Mockito.when(prefixVO.getId()).thenReturn(prefixId); Mockito.when(dataCenterGuestIpv6PrefixDao.findById(Mockito.anyLong())).thenReturn(prefixVO); Mockito.when(ipv6GuestPrefixSubnetNetworkMapDao.listUsedByPrefix(Mockito.anyLong())).thenReturn(new ArrayList<>()); final List<Long> removedPrefix = new ArrayList<>(); Mockito.when(dataCenterGuestIpv6PrefixDao.remove(Mockito.anyLong())).thenAnswer((Answer<Boolean>) invocation -> { removedPrefix.add(invocation.getArgument(0)); return true; }); configurationMgr.deleteDataCenterGuestIpv6Prefix(cmd); Assert.assertEquals(1, removedPrefix.size()); Assert.assertEquals(prefixId, removedPrefix.get(0)); }
Reusable Method for MCI (click to expand)
private static DeleteGuestNetworkIpv6PrefixCmd createMockDeleteGuestNetworkIpv6PrefixCmd(Long idReturn) { DeleteGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(DeleteGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getId()).thenReturn(idReturn); return cmd; }

Mock Clone Instance #cloudstack_MCI_69

Reusable Method

private static DocumentBuilderFactory createMockDocumentBuilderFactory(DocumentBuilder documentBuilder) { DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); return documentBuilderFactory; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_69_1

Test Case Name: getSnhItfReqTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: documentBuilderFactory

Suggested Diff
@@ InputStream inputStream = mock(InputStream.class); - DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); - when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); - when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); + DocumentBuilderFactory documentBuilderFactory = createMockDocumentBuilderFactory(documentBuilder); + when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void getSnhItfReqTest() throws Exception { Document document = mock(Document.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
private static DocumentBuilderFactory createMockDocumentBuilderFactory(DocumentBuilder documentBuilder) { DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); return documentBuilderFactory; }

Test Case ID #cloudstack_Test_69_2

Test Case Name: getSnhItfReqWithSAXExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: documentBuilderFactory

Suggested Diff
--- original +++ refactored @@ InputStream inputStream = mock(InputStream.class); - DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); + DocumentBuilderFactory documentBuilderFactory = createMockDocumentBuilderFactory(documentBuilder); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); - when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenThrow(SAXException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); @@
Original Test Code (click to expand)
@Test public void getSnhItfReqWithSAXExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenThrow(SAXException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
private static DocumentBuilderFactory createMockDocumentBuilderFactory(DocumentBuilder documentBuilder) { DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); return documentBuilderFactory; }

Mock Clone Instance #cloudstack_MCI_70

Reusable Method

private static SnapshotObjectTO createMockSnapshotObjectTO(String pathReturn) { SnapshotObjectTO mock = Mockito.mock(SnapshotObjectTO.class); Mockito.doReturn(pathReturn).when(mock).getPath(); return mock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_70_1

Test Case Name: validateGetSnapshotPathExistsOnPrimaryStorage(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\wrapper\LibvirtRevertSnapshotCommandWrapperTest.java)

Mock Object Variable Name: snapshotObjectToPrimaryMock

Suggested Diff
@@ public void validateGetSnapshotPathExistsOnPrimaryStorage() { String snapshotPath = "test"; - Pair<String, SnapshotObjectTO> expectedResult = new Pair<>(snapshotPath, snapshotObjectToPrimaryMock); - Mockito.doReturn(snapshotPath).when(snapshotObjectToPrimaryMock).getPath(); + snapshotObjectToPrimaryMock = createMockSnapshotObjectTO(snapshotPath); + Pair<String, SnapshotObjectTO> expectedResult = new Pair<>(snapshotPath, snapshotObjectToPrimaryMock); PowerMockito.mockStatic(Files.class); PowerMockito.when(Files.exists(Mockito.any(Path.class), Mockito.any())).thenReturn(true); Pair<String, SnapshotObjectTO> result = libvirtRevertSnapshotCommandWrapperSpy.getSnapshot(snapshotObjectToPrimaryMock, snapshotObjectToSecondaryMock, kvmStoragePoolPrimaryMock, kvmStoragePoolSecondaryMock); Assert.assertEquals(expectedResult.first(), result.first()); Assert.assertEquals(expectedResult.second(), result.second()); }
Original Test Code (click to expand)
@Test @PrepareForTest(LibvirtRevertSnapshotCommandWrapper.class) public void validateGetSnapshotPathExistsOnPrimaryStorage() { String snapshotPath = "test"; Pair<String, SnapshotObjectTO> expectedResult = new Pair<>(snapshotPath, snapshotObjectToPrimaryMock); Mockito.doReturn(snapshotPath).when(snapshotObjectToPrimaryMock).getPath(); PowerMockito.mockStatic(Files.class); PowerMockito.when(Files.exists(Mockito.any(Path.class), Mockito.any())).thenReturn(true); Pair<String, SnapshotObjectTO> result = libvirtRevertSnapshotCommandWrapperSpy.getSnapshot(snapshotObjectToPrimaryMock, snapshotObjectToSecondaryMock, kvmStoragePoolPrimaryMock, kvmStoragePoolSecondaryMock); Assert.assertEquals(expectedResult.first(), result.first()); Assert.assertEquals(expectedResult.second(), result.second()); }
Reusable Method for MCI (click to expand)
private static SnapshotObjectTO createMockSnapshotObjectTO(String pathReturn) { SnapshotObjectTO mock = Mockito.mock(SnapshotObjectTO.class); Mockito.doReturn(pathReturn).when(mock).getPath(); return mock; }

Test Case ID #cloudstack_Test_70_2

Test Case Name: validateGetSnapshotPathExistsOnSecondaryStorage(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\wrapper\LibvirtRevertSnapshotCommandWrapperTest.java)

Mock Object Variable Name: snapshotObjectToSecondaryMock

Suggested Diff
@@ String snapshotPath = "test"; - Pair<String, SnapshotObjectTO> expectedResult = new Pair<>(snapshotPath, snapshotObjectToSecondaryMock); + snapshotObjectToSecondaryMock = createMockSnapshotObjectTO(snapshotPath); + Pair<String, SnapshotObjectTO> expectedResult = new Pair<>(snapshotPath, snapshotObjectToSecondaryMock); PowerMockito.mockStatic(Files.class, Paths.class); PowerMockito.when(Paths.get(Mockito.any(), Mockito.any())).thenReturn(pathMock); PowerMockito.when(Files.exists(Mockito.any(Path.class), Mockito.any())).thenReturn(false); - Mockito.doReturn(snapshotPath).when(snapshotObjectToSecondaryMock).getPath(); Mockito.doReturn(snapshotPath).when(libvirtRevertSnapshotCommandWrapperSpy).getFullPathAccordingToStorage(Mockito.any(), Mockito.any()); Pair<String, SnapshotObjectTO> result = libvirtRevertSnapshotCommandWrapperSpy.getSnapshot(snapshotObjectToPrimaryMock, snapshotObjectToSecondaryMock, kvmStoragePoolPrimaryMock, kvmStoragePoolSecondaryMock); Assert.assertEquals(expectedResult.first(), result.first()); Assert.assertEquals(expectedResult.second(), result.second());
Original Test Code (click to expand)
@Test @PrepareForTest(LibvirtRevertSnapshotCommandWrapper.class) public void validateGetSnapshotPathExistsOnSecondaryStorage() { String snapshotPath = "test"; Pair<String, SnapshotObjectTO> expectedResult = new Pair<>(snapshotPath, snapshotObjectToSecondaryMock); PowerMockito.mockStatic(Files.class, Paths.class); PowerMockito.when(Paths.get(Mockito.any(), Mockito.any())).thenReturn(pathMock); PowerMockito.when(Files.exists(Mockito.any(Path.class), Mockito.any())).thenReturn(false); Mockito.doReturn(snapshotPath).when(snapshotObjectToSecondaryMock).getPath(); Mockito.doReturn(snapshotPath).when(libvirtRevertSnapshotCommandWrapperSpy).getFullPathAccordingToStorage(Mockito.any(), Mockito.any()); Pair<String, SnapshotObjectTO> result = libvirtRevertSnapshotCommandWrapperSpy.getSnapshot(snapshotObjectToPrimaryMock, snapshotObjectToSecondaryMock, kvmStoragePoolPrimaryMock, kvmStoragePoolSecondaryMock); Assert.assertEquals(expectedResult.first(), result.first()); Assert.assertEquals(expectedResult.second(), result.second()); }
Reusable Method for MCI (click to expand)
private static SnapshotObjectTO createMockSnapshotObjectTO(String pathReturn) { SnapshotObjectTO mock = Mockito.mock(SnapshotObjectTO.class); Mockito.doReturn(pathReturn).when(mock).getPath(); return mock; }

Mock Clone Instance #cloudstack_MCI_71

Reusable Method

private static SnapshotStrategy createMockSnapshotStrategy(StrategyPriority priority) { SnapshotStrategy strategy = mock(SnapshotStrategy.class); doReturn(priority).when(strategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); return strategy; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_71_1

Test Case Name: testSortSnapshotStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: cantHandleStrategy

Suggested Diff
--- original +++ refactored @@ @Test public void testSortSnapshotStrategies() { - SnapshotStrategy cantHandleStrategy = mock(SnapshotStrategy.class); + SnapshotStrategy cantHandleStrategy = createMockSnapshotStrategy(StrategyPriority.CANT_HANDLE); SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); - doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); List<SnapshotStrategy> strategies = new ArrayList<SnapshotStrategy>(5); SnapshotStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setSnapshotStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); } @@
Original Test Code (click to expand)
@Test public void testSortSnapshotStrategies() { SnapshotStrategy cantHandleStrategy = mock(SnapshotStrategy.class); SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); List<SnapshotStrategy> strategies = new ArrayList<SnapshotStrategy>(5); SnapshotStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setSnapshotStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static SnapshotStrategy createMockSnapshotStrategy(StrategyPriority priority) { SnapshotStrategy strategy = mock(SnapshotStrategy.class); doReturn(priority).when(strategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); return strategy; }

Test Case ID #cloudstack_Test_71_2

Test Case Name: testSortSnapshotStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: defaultStrategy

Suggested Diff
--- original +++ refactored @@ SnapshotStrategy cantHandleStrategy = mock(SnapshotStrategy.class); - SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); + SnapshotStrategy defaultStrategy = createMockSnapshotStrategy(StrategyPriority.DEFAULT); SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); - doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); @@
Original Test Code (click to expand)
@Test public void testSortSnapshotStrategies() { SnapshotStrategy cantHandleStrategy = mock(SnapshotStrategy.class); SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); List<SnapshotStrategy> strategies = new ArrayList<SnapshotStrategy>(5); SnapshotStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setSnapshotStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static SnapshotStrategy createMockSnapshotStrategy(StrategyPriority priority) { SnapshotStrategy strategy = mock(SnapshotStrategy.class); doReturn(priority).when(strategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); return strategy; }

Test Case ID #cloudstack_Test_71_3

Test Case Name: testSortSnapshotStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: hyperStrategy

Suggested Diff
@@ SnapshotStrategy cantHandleStrategy = mock(SnapshotStrategy.class); SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); - SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); - doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); + SnapshotStrategy hyperStrategy = createMockSnapshotStrategy(StrategyPriority.HYPERVISOR); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); List<SnapshotStrategy> strategies = new ArrayList<SnapshotStrategy>(5); @@
Original Test Code (click to expand)
@Test public void testSortSnapshotStrategies() { SnapshotStrategy cantHandleStrategy = mock(SnapshotStrategy.class); SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); List<SnapshotStrategy> strategies = new ArrayList<SnapshotStrategy>(5); SnapshotStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setSnapshotStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static SnapshotStrategy createMockSnapshotStrategy(StrategyPriority priority) { SnapshotStrategy strategy = mock(SnapshotStrategy.class); doReturn(priority).when(strategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); return strategy; }

Test Case ID #cloudstack_Test_71_4

Test Case Name: testSortSnapshotStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: highestStrategy

Suggested Diff
--- original +++ refactored @@ SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); - SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); - doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); + SnapshotStrategy highestStrategy = createMockSnapshotStrategy(StrategyPriority.HIGHEST); List<SnapshotStrategy> strategies = new ArrayList<SnapshotStrategy>(5); SnapshotStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); @@
Original Test Code (click to expand)
@Test public void testSortSnapshotStrategies() { SnapshotStrategy cantHandleStrategy = mock(SnapshotStrategy.class); SnapshotStrategy defaultStrategy = mock(SnapshotStrategy.class); SnapshotStrategy hyperStrategy = mock(SnapshotStrategy.class); SnapshotStrategy highestStrategy = mock(SnapshotStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); List<SnapshotStrategy> strategies = new ArrayList<SnapshotStrategy>(5); SnapshotStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setSnapshotStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getSnapshotStrategy(mock(Snapshot.class), SnapshotOperation.TAKE); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static SnapshotStrategy createMockSnapshotStrategy(StrategyPriority priority) { SnapshotStrategy strategy = mock(SnapshotStrategy.class); doReturn(priority).when(strategy).canHandle(any(Snapshot.class), any(SnapshotOperation.class)); return strategy; }

Mock Clone Instance #cloudstack_MCI_72

Reusable Method

private static StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> createMockTransition(VirtualMachine.State currentState, VirtualMachine.State toState) { StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = mock(StateMachine2.Transition.class); when(transition.getCurrentState()).thenReturn(currentState); when(transition.getToState()).thenReturn(toState); return transition; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_72_1

Test Case Name: postStateTransitionEventWithVmStartedTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: transition

Suggested Diff
--- original +++ refactored @@ @Test public void postStateTransitionEventWithVmStartedTest() { - StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = mock(StateMachine2.Transition.class); VMInstanceVO vo = mock(VMInstanceVO.class); Object opaque = mock(Object.class); - when(transition.getCurrentState()).thenReturn(VirtualMachine.State.Starting); - when(transition.getToState()).thenReturn(VirtualMachine.State.Running); + StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = createMockTransition(VirtualMachine.State.Starting, VirtualMachine.State.Running); when(tungstenService.addTungstenVmSecurityGroup(any(VMInstanceVO.class))).thenReturn(true); assertTrue(tungstenElement.postStateTransitionEvent(transition, vo, true, opaque)); } @@
Original Test Code (click to expand)
@Test public void postStateTransitionEventWithVmStartedTest() { StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = mock(StateMachine2.Transition.class); VMInstanceVO vo = mock(VMInstanceVO.class); Object opaque = mock(Object.class); when(transition.getCurrentState()).thenReturn(VirtualMachine.State.Starting); when(transition.getToState()).thenReturn(VirtualMachine.State.Running); when(tungstenService.addTungstenVmSecurityGroup(any(VMInstanceVO.class))).thenReturn(true); assertTrue(tungstenElement.postStateTransitionEvent(transition, vo, true, opaque)); }
Reusable Method for MCI (click to expand)
private static StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> createMockTransition(VirtualMachine.State currentState, VirtualMachine.State toState) { StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = mock(StateMachine2.Transition.class); when(transition.getCurrentState()).thenReturn(currentState); when(transition.getToState()).thenReturn(toState); return transition; }

Test Case ID #cloudstack_Test_72_2

Test Case Name: postStateTransitionEventWithVmStopedTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: transition

Suggested Diff
--- original +++ refactored @@ public void postStateTransitionEventWithVmStopedTest() { - StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = mock(StateMachine2.Transition.class); + StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = createMockTransition(VirtualMachine.State.Stopping, VirtualMachine.State.Stopped); VMInstanceVO vo = mock(VMInstanceVO.class); Object opaque = mock(Object.class); - when(transition.getCurrentState()).thenReturn(VirtualMachine.State.Stopping); - when(transition.getToState()).thenReturn(VirtualMachine.State.Stopped); when(tungstenService.removeTungstenVmSecurityGroup(any(VMInstanceVO.class))).thenReturn(true); assertTrue(tungstenElement.postStateTransitionEvent(transition, vo, true, opaque)); }
Original Test Code (click to expand)
@Test public void postStateTransitionEventWithVmStopedTest() { StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = mock(StateMachine2.Transition.class); VMInstanceVO vo = mock(VMInstanceVO.class); Object opaque = mock(Object.class); when(transition.getCurrentState()).thenReturn(VirtualMachine.State.Stopping); when(transition.getToState()).thenReturn(VirtualMachine.State.Stopped); when(tungstenService.removeTungstenVmSecurityGroup(any(VMInstanceVO.class))).thenReturn(true); assertTrue(tungstenElement.postStateTransitionEvent(transition, vo, true, opaque)); }
Reusable Method for MCI (click to expand)
private static StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> createMockTransition(VirtualMachine.State currentState, VirtualMachine.State toState) { StateMachine2.Transition<VirtualMachine.State, VirtualMachine.Event> transition = mock(StateMachine2.Transition.class); when(transition.getCurrentState()).thenReturn(currentState); when(transition.getToState()).thenReturn(toState); return transition; }

Mock Clone Instance #cloudstack_MCI_73

Reusable Method

private static PrimaryDataStore createMockPrimaryDataStore(long idReturn) { PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(idReturn); return mockPrimaryDataStore; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_73_1

Test Case Name: testPrepareTemplateIsSeeded(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: mockPrimaryDataStore

Suggested Diff
--- original +++ refactored @@ StoragePoolVO mockPool = mock(StoragePoolVO.class); when(mockPool.getId()).thenReturn(2l); - PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); - when(mockPrimaryDataStore.getId()).thenReturn(2l); + PrimaryDataStore mockPrimaryDataStore = createMockPrimaryDataStore(2l); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); @@
Original Test Code (click to expand)
@Test public void testPrepareTemplateIsSeeded() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); when(mockTemplate.getId()).thenReturn(202l); StoragePoolVO mockPool = mock(StoragePoolVO.class); when(mockPool.getId()).thenReturn(2l); PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(2l); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); VMTemplateStoragePoolVO returnObject = templateManager.prepareTemplateForCreate(mockTemplate, (StoragePool) mockPrimaryDataStore); assertTrue("Test template is already seeded", returnObject == mockTemplateStore); }
Reusable Method for MCI (click to expand)
private static PrimaryDataStore createMockPrimaryDataStore(long idReturn) { PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(idReturn); return mockPrimaryDataStore; }

Test Case ID #cloudstack_Test_73_2

Test Case Name: testPrepareTemplateNotDownloaded(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: mockPrimaryDataStore

Suggested Diff
@@ StoragePoolVO mockPool = mock(StoragePoolVO.class); when(mockPool.getId()).thenReturn(2l); - PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); - when(mockPrimaryDataStore.getId()).thenReturn(2l); - when(mockPrimaryDataStore.getDataCenterId()).thenReturn(1l); + PrimaryDataStore mockPrimaryDataStore = createMockPrimaryDataStore(2l); + when(mockPrimaryDataStore.getDataCenterId()).thenReturn(1l); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); @@
Original Test Code (click to expand)
@Test public void testPrepareTemplateNotDownloaded() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); when(mockTemplate.getId()).thenReturn(202l); StoragePoolVO mockPool = mock(StoragePoolVO.class); when(mockPool.getId()).thenReturn(2l); PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockPrimaryDataStore.getDataCenterId()).thenReturn(1l); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(null); when(templateDataStoreDao.findByTemplateZoneDownloadStatus(202l, 1l, VMTemplateStorageResourceAssoc.Status.DOWNLOADED)).thenReturn(null); VMTemplateStoragePoolVO returnObject = templateManager.prepareTemplateForCreate(mockTemplate, (StoragePool) mockPrimaryDataStore); assertTrue("Test template is not ready", returnObject == null); }
Reusable Method for MCI (click to expand)
private static PrimaryDataStore createMockPrimaryDataStore(long idReturn) { PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(idReturn); return mockPrimaryDataStore; }

Test Case ID #cloudstack_Test_73_3

Test Case Name: testPrepareTemplateNoHostConnectedToPool(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: mockPrimaryDataStore

Suggested Diff
@@ StoragePoolVO mockPool = mock(StoragePoolVO.class); when(mockPool.getId()).thenReturn(2l); - PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); - when(mockPrimaryDataStore.getId()).thenReturn(2l); - when(mockPrimaryDataStore.getDataCenterId()).thenReturn(1l); + PrimaryDataStore mockPrimaryDataStore = createMockPrimaryDataStore(2l); TemplateDataStoreVO mockTemplateDataStore = mock(TemplateDataStoreVO.class); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testPrepareTemplateNoHostConnectedToPool() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); when(mockTemplate.getId()).thenReturn(202l); StoragePoolVO mockPool = mock(StoragePoolVO.class); when(mockPool.getId()).thenReturn(2l); PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockPrimaryDataStore.getDataCenterId()).thenReturn(1l); TemplateDataStoreVO mockTemplateDataStore = mock(TemplateDataStoreVO.class); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(null); when(templateDataStoreDao.findByTemplateZoneDownloadStatus(202l, 1l, VMTemplateStorageResourceAssoc.Status.DOWNLOADED)).thenReturn(mockTemplateDataStore); when(storagePoolHostDao.listByHostStatus(2l, Status.Up)).thenReturn(null); templateManager.prepareTemplateForCreate(mockTemplate, (StoragePool) mockPrimaryDataStore); }
Reusable Method for MCI (click to expand)
private static PrimaryDataStore createMockPrimaryDataStore(long idReturn) { PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(idReturn); return mockPrimaryDataStore; }

Test Case ID #cloudstack_Test_73_4

Test Case Name: testTemplateScheduledForDownloadInOnePool(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: mockPrimaryDataStore

Suggested Diff
--- original +++ refactored @@ VMTemplateVO mockTemplate = mock(VMTemplateVO.class); StoragePoolVO mockPool = mock(StoragePoolVO.class); - PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); + PrimaryDataStore mockPrimaryDataStore = createMockPrimaryDataStore(2l); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); - when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockPool.getId()).thenReturn(2l); when(mockPool.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool.getDataCenterId()).thenReturn(1l); when(mockTemplate.getId()).thenReturn(202l); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); when(vmTemplateDao.findById(anyLong())).thenReturn(mockTemplate); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(anyLong())).thenReturn(mockPool); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); ExecutorService preloadExecutor = new CustomThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new NamedThreadFactory("Template-Preloader")); templateManager._preloadExecutor = preloadExecutor; templateManager.prepareTemplate(202, 1, 2l); assertTrue("Test template is scheduled for seeding to on pool", ((CustomThreadPoolExecutor) preloadExecutor).getCount() == 1); @@
Original Test Code (click to expand)
@Test public void testTemplateScheduledForDownloadInOnePool() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); StoragePoolVO mockPool = mock(StoragePoolVO.class); PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockPool.getId()).thenReturn(2l); when(mockPool.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool.getDataCenterId()).thenReturn(1l); when(mockTemplate.getId()).thenReturn(202l); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); when(vmTemplateDao.findById(anyLong())).thenReturn(mockTemplate); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(anyLong())).thenReturn(mockPool); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); ExecutorService preloadExecutor = new CustomThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new NamedThreadFactory("Template-Preloader")); templateManager._preloadExecutor = preloadExecutor; templateManager.prepareTemplate(202, 1, 2l); assertTrue("Test template is scheduled for seeding to on pool", ((CustomThreadPoolExecutor) preloadExecutor).getCount() == 1); }
Reusable Method for MCI (click to expand)
private static PrimaryDataStore createMockPrimaryDataStore(long idReturn) { PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(idReturn); return mockPrimaryDataStore; }

Test Case ID #cloudstack_Test_73_5

Test Case Name: testTemplateScheduledForDownloadInDisabledPool(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: mockPrimaryDataStore

Suggested Diff
--- original +++ refactored @@ VMTemplateVO mockTemplate = mock(VMTemplateVO.class); StoragePoolVO mockPool = mock(StoragePoolVO.class); - PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); + PrimaryDataStore mockPrimaryDataStore = createMockPrimaryDataStore(2l); - when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockPool.getId()).thenReturn(2l); when(mockPool.getStatus()).thenReturn(StoragePoolStatus.Disabled); when(mockPool.getDataCenterId()).thenReturn(1l); when(mockTemplate.getId()).thenReturn(202l); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); when(vmTemplateDao.findById(anyLong())).thenReturn(mockTemplate); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(anyLong())).thenReturn(mockPool); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); ExecutorService preloadExecutor = new CustomThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new NamedThreadFactory("Template-Preloader")); templateManager._preloadExecutor = preloadExecutor; templateManager.prepareTemplate(202, 1, 2l); assertTrue("Test template is not scheduled for seeding on disabled pool", ((CustomThreadPoolExecutor) preloadExecutor).getCount() == 0); @@
Original Test Code (click to expand)
@Test public void testTemplateScheduledForDownloadInDisabledPool() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); StoragePoolVO mockPool = mock(StoragePoolVO.class); PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockPool.getId()).thenReturn(2l); when(mockPool.getStatus()).thenReturn(StoragePoolStatus.Disabled); when(mockPool.getDataCenterId()).thenReturn(1l); when(mockTemplate.getId()).thenReturn(202l); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); when(vmTemplateDao.findById(anyLong())).thenReturn(mockTemplate); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(anyLong())).thenReturn(mockPool); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); ExecutorService preloadExecutor = new CustomThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new NamedThreadFactory("Template-Preloader")); templateManager._preloadExecutor = preloadExecutor; templateManager.prepareTemplate(202, 1, 2l); assertTrue("Test template is not scheduled for seeding on disabled pool", ((CustomThreadPoolExecutor) preloadExecutor).getCount() == 0); }
Reusable Method for MCI (click to expand)
private static PrimaryDataStore createMockPrimaryDataStore(long idReturn) { PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(idReturn); return mockPrimaryDataStore; }

Test Case ID #cloudstack_Test_73_6

Test Case Name: testTemplateScheduledForDownloadInMultiplePool(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: mockPrimaryDataStore

Suggested Diff
--- original +++ refactored @@ VMTemplateVO mockTemplate = mock(VMTemplateVO.class); - PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); + PrimaryDataStore mockPrimaryDataStore = createMockPrimaryDataStore(2l); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); List<StoragePoolVO> pools = new ArrayList<StoragePoolVO>(); StoragePoolVO mockPool1 = mock(StoragePoolVO.class); when(mockPool1.getId()).thenReturn(2l); when(mockPool1.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool1.getDataCenterId()).thenReturn(1l); StoragePoolVO mockPool2 = mock(StoragePoolVO.class); when(mockPool2.getId()).thenReturn(3l); when(mockPool2.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool2.getDataCenterId()).thenReturn(1l); StoragePoolVO mockPool3 = mock(StoragePoolVO.class); when(mockPool3.getId()).thenReturn(4l); when(mockPool3.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool3.getDataCenterId()).thenReturn(2l); pools.add(mockPool1); pools.add(mockPool2); pools.add(mockPool3); - when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockTemplate.getId()).thenReturn(202l); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); when(vmTemplateDao.findById(anyLong())).thenReturn(mockTemplate); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(2l)).thenReturn(mockPool1); when(primaryDataStoreDao.findById(3l)).thenReturn(mockPool2); when(primaryDataStoreDao.findById(4l)).thenReturn(mockPool3); when(primaryDataStoreDao.listByStatus(StoragePoolStatus.Up)).thenReturn(pools); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); ExecutorService preloadExecutor = new CustomThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new NamedThreadFactory("Template-Preloader")); templateManager._preloadExecutor = preloadExecutor; templateManager.prepareTemplate(202, 1, null); assertTrue("Test template is scheduled for seeding to on pool", ((CustomThreadPoolExecutor) preloadExecutor).getCount() == 2); @@
Original Test Code (click to expand)
@Test public void testTemplateScheduledForDownloadInMultiplePool() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); List<StoragePoolVO> pools = new ArrayList<StoragePoolVO>(); StoragePoolVO mockPool1 = mock(StoragePoolVO.class); when(mockPool1.getId()).thenReturn(2l); when(mockPool1.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool1.getDataCenterId()).thenReturn(1l); StoragePoolVO mockPool2 = mock(StoragePoolVO.class); when(mockPool2.getId()).thenReturn(3l); when(mockPool2.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool2.getDataCenterId()).thenReturn(1l); StoragePoolVO mockPool3 = mock(StoragePoolVO.class); when(mockPool3.getId()).thenReturn(4l); when(mockPool3.getStatus()).thenReturn(StoragePoolStatus.Up); when(mockPool3.getDataCenterId()).thenReturn(2l); pools.add(mockPool1); pools.add(mockPool2); pools.add(mockPool3); when(mockPrimaryDataStore.getId()).thenReturn(2l); when(mockTemplate.getId()).thenReturn(202l); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); when(vmTemplateDao.findById(anyLong())).thenReturn(mockTemplate); when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(2l)).thenReturn(mockPool1); when(primaryDataStoreDao.findById(3l)).thenReturn(mockPool2); when(primaryDataStoreDao.findById(4l)).thenReturn(mockPool3); when(primaryDataStoreDao.listByStatus(StoragePoolStatus.Up)).thenReturn(pools); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); ExecutorService preloadExecutor = new CustomThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new NamedThreadFactory("Template-Preloader")); templateManager._preloadExecutor = preloadExecutor; templateManager.prepareTemplate(202, 1, null); assertTrue("Test template is scheduled for seeding to on pool", ((CustomThreadPoolExecutor) preloadExecutor).getCount() == 2); }
Reusable Method for MCI (click to expand)
private static PrimaryDataStore createMockPrimaryDataStore(long idReturn) { PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); when(mockPrimaryDataStore.getId()).thenReturn(idReturn); return mockPrimaryDataStore; }

Mock Clone Instance #cloudstack_MCI_74

Reusable Method

private static ListPublicIpAddressesCmd createMockListPublicIpAddressesCmd(long networkId) { ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getNetworkId()).thenReturn(networkId); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getTags()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_74_1

Test Case Name: setParametersTestWhenStateIsFreeAndSystemVmPublicIsTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ Mockito.when(mockConfig.value()).thenReturn(Boolean.TRUE); - ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); - Mockito.when(cmd.getNetworkId()).thenReturn(10L); - Mockito.when(cmd.getZoneId()).thenReturn(null); - Mockito.when(cmd.getIpAddress()).thenReturn(null); - Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); - Mockito.when(cmd.getVlanId()).thenReturn(null); - Mockito.when(cmd.getId()).thenReturn(null); - Mockito.when(cmd.isSourceNat()).thenReturn(null); - Mockito.when(cmd.isStaticNat()).thenReturn(null); - Mockito.when(cmd.getState()).thenReturn(IpAddress.State.Free.name()); - Mockito.when(cmd.getTags()).thenReturn(null); + ListPublicIpAddressesCmd cmd = createMockListPublicIpAddressesCmd(10L); + Mockito.when(cmd.getState()).thenReturn(IpAddress.State.Free.name()); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.FALSE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); Mockito.verify(sc, Mockito.times(1)).setParameters("display", false); Mockito.verify(sc, Mockito.times(1)).setParameters("sourceNetworkId", 10L); Mockito.verify(sc, Mockito.times(1)).setParameters("state", "Free"); Mockito.verify(sc, Mockito.times(1)).setParameters("forsystemvms", false); @@
Original Test Code (click to expand)
@Test public void setParametersTestWhenStateIsFreeAndSystemVmPublicIsTrue() throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException { Mockito.when(mockConfig.value()).thenReturn(Boolean.TRUE); ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getNetworkId()).thenReturn(10L); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); Mockito.when(cmd.getState()).thenReturn(IpAddress.State.Free.name()); Mockito.when(cmd.getTags()).thenReturn(null); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.FALSE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); Mockito.verify(sc, Mockito.times(1)).setParameters("display", false); Mockito.verify(sc, Mockito.times(1)).setParameters("sourceNetworkId", 10L); Mockito.verify(sc, Mockito.times(1)).setParameters("state", "Free"); Mockito.verify(sc, Mockito.times(1)).setParameters("forsystemvms", false); }
Reusable Method for MCI (click to expand)
private static ListPublicIpAddressesCmd createMockListPublicIpAddressesCmd(long networkId) { ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getNetworkId()).thenReturn(networkId); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getTags()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); return cmd; }

Test Case ID #cloudstack_Test_74_2

Test Case Name: setParametersTestWhenStateIsFreeAndSystemVmPublicIsFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ Mockito.when(mockConfig.value()).thenReturn(Boolean.FALSE); - ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); - Mockito.when(cmd.getNetworkId()).thenReturn(10L); - Mockito.when(cmd.getZoneId()).thenReturn(null); - Mockito.when(cmd.getIpAddress()).thenReturn(null); - Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); - Mockito.when(cmd.getVlanId()).thenReturn(null); - Mockito.when(cmd.getId()).thenReturn(null); - Mockito.when(cmd.isSourceNat()).thenReturn(null); - Mockito.when(cmd.isStaticNat()).thenReturn(null); + ListPublicIpAddressesCmd cmd = createMockListPublicIpAddressesCmd(10L); Mockito.when(cmd.getState()).thenReturn(IpAddress.State.Free.name()); Mockito.when(cmd.getTags()).thenReturn(null); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.FALSE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); @@
Original Test Code (click to expand)
@Test public void setParametersTestWhenStateIsFreeAndSystemVmPublicIsFalse() { Mockito.when(mockConfig.value()).thenReturn(Boolean.FALSE); ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getNetworkId()).thenReturn(10L); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); Mockito.when(cmd.getState()).thenReturn(IpAddress.State.Free.name()); Mockito.when(cmd.getTags()).thenReturn(null); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.FALSE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); Mockito.verify(sc, Mockito.times(1)).setParameters("display", false); Mockito.verify(sc, Mockito.times(1)).setParameters("sourceNetworkId", 10L); Mockito.verify(sc, Mockito.times(1)).setParameters("state", "Free"); Mockito.verify(sc, Mockito.never()).setParameters("forsystemvms", false); }
Reusable Method for MCI (click to expand)
private static ListPublicIpAddressesCmd createMockListPublicIpAddressesCmd(long networkId) { ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getNetworkId()).thenReturn(networkId); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getTags()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); return cmd; }

Test Case ID #cloudstack_Test_74_3

Test Case Name: setParametersTestWhenStateIsNullAndSystemVmPublicIsFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ Mockito.when(mockConfig.value()).thenReturn(Boolean.FALSE); - ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); - Mockito.when(cmd.getNetworkId()).thenReturn(10L); - Mockito.when(cmd.getZoneId()).thenReturn(null); - Mockito.when(cmd.getIpAddress()).thenReturn(null); - Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); - Mockito.when(cmd.getVlanId()).thenReturn(null); - Mockito.when(cmd.getId()).thenReturn(null); - Mockito.when(cmd.isSourceNat()).thenReturn(null); - Mockito.when(cmd.isStaticNat()).thenReturn(null); - Mockito.when(cmd.getState()).thenReturn(null); - Mockito.when(cmd.getTags()).thenReturn(null); + ListPublicIpAddressesCmd cmd = createMockListPublicIpAddressesCmd(10L); + Mockito.when(cmd.getState()).thenReturn(null); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.TRUE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); Mockito.verify(sc, Mockito.times(1)).setParameters("display", false); Mockito.verify(sc, Mockito.times(1)).setParameters("sourceNetworkId", 10L); Mockito.verify(sc, Mockito.never()).setParameters("forsystemvms", false); @@
Original Test Code (click to expand)
@Test public void setParametersTestWhenStateIsNullAndSystemVmPublicIsFalse() { Mockito.when(mockConfig.value()).thenReturn(Boolean.FALSE); ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getNetworkId()).thenReturn(10L); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); Mockito.when(cmd.getState()).thenReturn(null); Mockito.when(cmd.getTags()).thenReturn(null); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.TRUE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); Mockito.verify(sc, Mockito.times(1)).setParameters("display", false); Mockito.verify(sc, Mockito.times(1)).setParameters("sourceNetworkId", 10L); Mockito.verify(sc, Mockito.never()).setParameters("forsystemvms", false); }
Reusable Method for MCI (click to expand)
private static ListPublicIpAddressesCmd createMockListPublicIpAddressesCmd(long networkId) { ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getNetworkId()).thenReturn(networkId); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getTags()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); return cmd; }

Test Case ID #cloudstack_Test_74_4

Test Case Name: setParametersTestWhenStateIsNullAndSystemVmPublicIsTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ Mockito.when(mockConfig.value()).thenReturn(Boolean.TRUE); - ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); - Mockito.when(cmd.getNetworkId()).thenReturn(10L); - Mockito.when(cmd.getZoneId()).thenReturn(null); - Mockito.when(cmd.getIpAddress()).thenReturn(null); - Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); - Mockito.when(cmd.getVlanId()).thenReturn(null); - Mockito.when(cmd.getId()).thenReturn(null); - Mockito.when(cmd.isSourceNat()).thenReturn(null); - Mockito.when(cmd.isStaticNat()).thenReturn(null); - Mockito.when(cmd.getState()).thenReturn(null); - Mockito.when(cmd.getTags()).thenReturn(null); + ListPublicIpAddressesCmd cmd = createMockListPublicIpAddressesCmd(10L); + Mockito.when(cmd.getState()).thenReturn(null); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.TRUE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); Mockito.verify(sc, Mockito.times(1)).setParameters("display", false); Mockito.verify(sc, Mockito.times(1)).setParameters("sourceNetworkId", 10L); Mockito.verify(sc, Mockito.never()).setParameters("forsystemvms", false); @@
Original Test Code (click to expand)
@Test public void setParametersTestWhenStateIsNullAndSystemVmPublicIsTrue() { Mockito.when(mockConfig.value()).thenReturn(Boolean.TRUE); ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getNetworkId()).thenReturn(10L); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); Mockito.when(cmd.getState()).thenReturn(null); Mockito.when(cmd.getTags()).thenReturn(null); spy.setParameters(sc, cmd, VlanType.VirtualNetwork, Boolean.TRUE); Mockito.verify(sc, Mockito.times(1)).setJoinParameters("vlanSearch", "vlanType", VlanType.VirtualNetwork); Mockito.verify(sc, Mockito.times(1)).setParameters("display", false); Mockito.verify(sc, Mockito.times(1)).setParameters("sourceNetworkId", 10L); Mockito.verify(sc, Mockito.never()).setParameters("forsystemvms", false); }
Reusable Method for MCI (click to expand)
private static ListPublicIpAddressesCmd createMockListPublicIpAddressesCmd(long networkId) { ListPublicIpAddressesCmd cmd = Mockito.mock(ListPublicIpAddressesCmd.class); Mockito.when(cmd.getId()).thenReturn(null); Mockito.when(cmd.getIpAddress()).thenReturn(null); Mockito.when(cmd.getNetworkId()).thenReturn(networkId); Mockito.when(cmd.getPhysicalNetworkId()).thenReturn(null); Mockito.when(cmd.getTags()).thenReturn(null); Mockito.when(cmd.getVlanId()).thenReturn(null); Mockito.when(cmd.getZoneId()).thenReturn(null); Mockito.when(cmd.isSourceNat()).thenReturn(null); Mockito.when(cmd.isStaticNat()).thenReturn(null); return cmd; }

Mock Clone Instance #cloudstack_MCI_75

Reusable Method

public class MockAffinityGroupVMMapDao { public static AffinityGroupVMMapDao createMockAffinityGroupVMMapDao(long vmId, List<AffinityGroupVMMapVO> vmGroupMappings, long affinityGroupId, List<Long> groupVMIds) { AffinityGroupVMMapDao affinityGroupVMMapDao = Mockito.mock(AffinityGroupVMMapDao.class); when(affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); when(affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); return affinityGroupVMMapDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_75_1

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: _affinityGroupVMMapDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); - when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); + _affinityGroupVMMapDao = MockAffinityGroupVMMapDao.createMockAffinityGroupVMMapDao(vmId, vmGroupMappings, affinityGroupId, groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupVMMapDao { public static AffinityGroupVMMapDao createMockAffinityGroupVMMapDao(long vmId, List<AffinityGroupVMMapVO> vmGroupMappings, long affinityGroupId, List<Long> groupVMIds) { AffinityGroupVMMapDao affinityGroupVMMapDao = Mockito.mock(AffinityGroupVMMapDao.class); when(affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); when(affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); return affinityGroupVMMapDao; } }

Test Case ID #cloudstack_Test_75_2

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: _affinityGroupVMMapDao

Suggested Diff
@@ List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); - when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); + _affinityGroupVMMapDao = MockAffinityGroupVMMapDao.createMockAffinityGroupVMMapDao(vmId, vmGroupMappings, affinityGroupId, groupVMIds); VMInstanceVO vm2 = new VMInstanceVO();
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.LOWER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupVMMapDao { public static AffinityGroupVMMapDao createMockAffinityGroupVMMapDao(long vmId, List<AffinityGroupVMMapVO> vmGroupMappings, long affinityGroupId, List<Long> groupVMIds) { AffinityGroupVMMapDao affinityGroupVMMapDao = Mockito.mock(AffinityGroupVMMapDao.class); when(affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); when(affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); return affinityGroupVMMapDao; } }

Test Case ID #cloudstack_Test_75_3

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: _affinityGroupVMMapDao

Suggested Diff
@@ vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); - when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); - when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); + _affinityGroupVMMapDao = MockAffinityGroupVMMapDao.createMockAffinityGroupVMMapDao(vmId, vmGroupMappings, affinityGroupId, groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupVMMapDao { public static AffinityGroupVMMapDao createMockAffinityGroupVMMapDao(long vmId, List<AffinityGroupVMMapVO> vmGroupMappings, long affinityGroupId, List<Long> groupVMIds) { AffinityGroupVMMapDao affinityGroupVMMapDao = Mockito.mock(AffinityGroupVMMapDao.class); when(affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); when(affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); return affinityGroupVMMapDao; } }

Test Case ID #cloudstack_Test_75_4

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: _affinityGroupVMMapDao

Suggested Diff
@@ vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); - when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); - when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); + _affinityGroupVMMapDao = MockAffinityGroupVMMapDao.createMockAffinityGroupVMMapDao(vmId, vmGroupMappings, affinityGroupId, groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupVMMapDao { public static AffinityGroupVMMapDao createMockAffinityGroupVMMapDao(long vmId, List<AffinityGroupVMMapVO> vmGroupMappings, long affinityGroupId, List<Long> groupVMIds) { AffinityGroupVMMapDao affinityGroupVMMapDao = Mockito.mock(AffinityGroupVMMapDao.class); when(affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); when(affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); return affinityGroupVMMapDao; } }

Test Case ID #cloudstack_Test_75_5

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: _affinityGroupVMMapDao

Suggested Diff
@@ List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); - when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.HIGHER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); - when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); + _affinityGroupVMMapDao = MockAffinityGroupVMMapDao.createMockAffinityGroupVMMapDao(vmId, vmGroupMappings, affinityGroupId, groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.HIGHER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupVMMapDao { public static AffinityGroupVMMapDao createMockAffinityGroupVMMapDao(long vmId, List<AffinityGroupVMMapVO> vmGroupMappings, long affinityGroupId, List<Long> groupVMIds) { AffinityGroupVMMapDao affinityGroupVMMapDao = Mockito.mock(AffinityGroupVMMapDao.class); when(affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); when(affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); return affinityGroupVMMapDao; } }

Test Case ID #cloudstack_Test_75_6

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: _affinityGroupVMMapDao

Suggested Diff
@@ when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); - when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); - when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); + _affinityGroupVMMapDao = MockAffinityGroupVMMapDao.createMockAffinityGroupVMMapDao(vmId, vmGroupMappings, affinityGroupId, groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupVMMapDao { public static AffinityGroupVMMapDao createMockAffinityGroupVMMapDao(long vmId, List<AffinityGroupVMMapVO> vmGroupMappings, long affinityGroupId, List<Long> groupVMIds) { AffinityGroupVMMapDao affinityGroupVMMapDao = Mockito.mock(AffinityGroupVMMapDao.class); when(affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); when(affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); return affinityGroupVMMapDao; } }

Mock Clone Instance #cloudstack_MCI_76

Reusable Method

private static ExecutionResult createMockExecutionResult(boolean isSuccessReturn) { ExecutionResult executionResult = Mockito.mock(ExecutionResult.class); when(executionResult.isSuccess()).thenReturn(isSuccessReturn); return executionResult; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_76_1

Test Case Name: testNetworkUsageCommandCreateVpc(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer56WrapperTest.java)

Mock Object Variable Name: executionResult

Suggested Diff
--- original +++ refactored @@ - final ExecutionResult executionResult = Mockito.mock(ExecutionResult.class); + final ExecutionResult executionResult = createMockExecutionResult(true); final NetworkUsageCommand networkCommand = new NetworkUsageCommand("192.168.10.10", "domRName", true, "192.168.10.1", "10.1.1.1/24"); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final String args = " -l 192.168.10.1 -c -v 10.1.1.1/24"; when(xenServer56Resource.executeInVR(networkCommand.getPrivateIP(), "vpc_netusage.sh", args)).thenReturn(executionResult); - when(executionResult.isSuccess()).thenReturn(true); final Answer answer = wrapper.execute(networkCommand, xenServer56Resource); assertTrue(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testNetworkUsageCommandCreateVpc() { final ExecutionResult executionResult = Mockito.mock(ExecutionResult.class); final NetworkUsageCommand networkCommand = new NetworkUsageCommand("192.168.10.10", "domRName", true, "192.168.10.1", "10.1.1.1/24"); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final String args = " -l 192.168.10.1 -c -v 10.1.1.1/24"; when(xenServer56Resource.executeInVR(networkCommand.getPrivateIP(), "vpc_netusage.sh", args)).thenReturn(executionResult); when(executionResult.isSuccess()).thenReturn(true); final Answer answer = wrapper.execute(networkCommand, xenServer56Resource); assertTrue(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static ExecutionResult createMockExecutionResult(boolean isSuccessReturn) { ExecutionResult executionResult = Mockito.mock(ExecutionResult.class); when(executionResult.isSuccess()).thenReturn(isSuccessReturn); return executionResult; }

Test Case ID #cloudstack_Test_76_2

Test Case Name: testNetworkUsageCommandCreateVpcFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer56WrapperTest.java)

Mock Object Variable Name: executionResult

Suggested Diff
--- original +++ refactored @@ @Test public void testNetworkUsageCommandCreateVpcFailure() { - final ExecutionResult executionResult = Mockito.mock(ExecutionResult.class); final NetworkUsageCommand networkCommand = new NetworkUsageCommand("192.168.10.10", "domRName", true, "192.168.10.1", "10.1.1.1/24"); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final String args = " -l 192.168.10.1 -c -v 10.1.1.1/24"; + final ExecutionResult executionResult = createMockExecutionResult(false); when(xenServer56Resource.executeInVR(networkCommand.getPrivateIP(), "vpc_netusage.sh", args)).thenReturn(executionResult); - when(executionResult.isSuccess()).thenReturn(false); final Answer answer = wrapper.execute(networkCommand, xenServer56Resource); assertFalse(answer.getResult()); } @@
Original Test Code (click to expand)
@Test public void testNetworkUsageCommandCreateVpcFailure() { final ExecutionResult executionResult = Mockito.mock(ExecutionResult.class); final NetworkUsageCommand networkCommand = new NetworkUsageCommand("192.168.10.10", "domRName", true, "192.168.10.1", "10.1.1.1/24"); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final String args = " -l 192.168.10.1 -c -v 10.1.1.1/24"; when(xenServer56Resource.executeInVR(networkCommand.getPrivateIP(), "vpc_netusage.sh", args)).thenReturn(executionResult); when(executionResult.isSuccess()).thenReturn(false); final Answer answer = wrapper.execute(networkCommand, xenServer56Resource); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static ExecutionResult createMockExecutionResult(boolean isSuccessReturn) { ExecutionResult executionResult = Mockito.mock(ExecutionResult.class); when(executionResult.isSuccess()).thenReturn(isSuccessReturn); return executionResult; }

Mock Clone Instance #cloudstack_MCI_77

Reusable Method

private static CreateZoneCmd createMockCreateZoneCmd(boolean isEdgeReturn, String networkTypeReturn) { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(isEdgeReturn); Mockito.when(cmd.getNetworkType()).thenReturn(networkTypeReturn); Mockito.when(cmd.getDomainId()).thenReturn(null); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_77_1

Test Case Name: testCreateEdgeZone(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ @Test public void testCreateEdgeZone() { - CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); - Mockito.when(cmd.isEdge()).thenReturn(true); - Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Advanced.toString()); - Mockito.when(cmd.getDomainId()).thenReturn(null); + CreateZoneCmd cmd = createMockCreateZoneCmd(true, NetworkType.Advanced.toString()); mockPersistDatacenterForCreateZone(); DataCenter zone = configurationMgr.createZone(cmd); Assert.assertNotNull(zone); Assert.assertEquals(NetworkType.Advanced, zone.getNetworkType()); Assert.assertEquals(DataCenter.Type.Edge, zone.getType()); } @@
Original Test Code (click to expand)
@Test public void testCreateEdgeZone() { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(true); Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Advanced.toString()); Mockito.when(cmd.getDomainId()).thenReturn(null); mockPersistDatacenterForCreateZone(); DataCenter zone = configurationMgr.createZone(cmd); Assert.assertNotNull(zone); Assert.assertEquals(NetworkType.Advanced, zone.getNetworkType()); Assert.assertEquals(DataCenter.Type.Edge, zone.getType()); }
Reusable Method for MCI (click to expand)
private static CreateZoneCmd createMockCreateZoneCmd(boolean isEdgeReturn, String networkTypeReturn) { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(isEdgeReturn); Mockito.when(cmd.getNetworkType()).thenReturn(networkTypeReturn); Mockito.when(cmd.getDomainId()).thenReturn(null); return cmd; }

Test Case ID #cloudstack_Test_77_2

Test Case Name: testCreateCoreZone(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ @Test public void testCreateCoreZone() { - CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); - Mockito.when(cmd.isEdge()).thenReturn(false); - Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Advanced.toString()); - Mockito.when(cmd.getDomainId()).thenReturn(null); + CreateZoneCmd cmd = createMockCreateZoneCmd(false, NetworkType.Advanced.toString()); mockPersistDatacenterForCreateZone(); DataCenter zone = configurationMgr.createZone(cmd); Assert.assertNotNull(zone); Assert.assertEquals(NetworkType.Advanced, zone.getNetworkType()); Assert.assertEquals(DataCenter.Type.Core, zone.getType()); } @@
Original Test Code (click to expand)
@Test public void testCreateCoreZone() { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(false); Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Advanced.toString()); Mockito.when(cmd.getDomainId()).thenReturn(null); mockPersistDatacenterForCreateZone(); DataCenter zone = configurationMgr.createZone(cmd); Assert.assertNotNull(zone); Assert.assertEquals(NetworkType.Advanced, zone.getNetworkType()); Assert.assertEquals(DataCenter.Type.Core, zone.getType()); }
Reusable Method for MCI (click to expand)
private static CreateZoneCmd createMockCreateZoneCmd(boolean isEdgeReturn, String networkTypeReturn) { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(isEdgeReturn); Mockito.when(cmd.getNetworkType()).thenReturn(networkTypeReturn); Mockito.when(cmd.getDomainId()).thenReturn(null); return cmd; }

Test Case ID #cloudstack_Test_77_3

Test Case Name: testCreateBasicZone(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ @Test public void testCreateBasicZone() { - CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); - Mockito.when(cmd.isEdge()).thenReturn(false); - Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Basic.toString()); - Mockito.when(cmd.getDomainId()).thenReturn(null); + CreateZoneCmd cmd = createMockCreateZoneCmd(false, NetworkType.Basic.toString()); mockPersistDatacenterForCreateZone(); DataCenter zone = configurationMgr.createZone(cmd); Assert.assertNotNull(zone); Assert.assertEquals(NetworkType.Basic, zone.getNetworkType()); } @@
Original Test Code (click to expand)
@Test public void testCreateBasicZone() { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(false); Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Basic.toString()); Mockito.when(cmd.getDomainId()).thenReturn(null); mockPersistDatacenterForCreateZone(); DataCenter zone = configurationMgr.createZone(cmd); Assert.assertNotNull(zone); Assert.assertEquals(NetworkType.Basic, zone.getNetworkType()); }
Reusable Method for MCI (click to expand)
private static CreateZoneCmd createMockCreateZoneCmd(boolean isEdgeReturn, String networkTypeReturn) { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(isEdgeReturn); Mockito.when(cmd.getNetworkType()).thenReturn(networkTypeReturn); Mockito.when(cmd.getDomainId()).thenReturn(null); return cmd; }

Test Case ID #cloudstack_Test_77_4

Test Case Name: testCreateBasicEdgeZoneFailure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ @Test(expected = InvalidParameterValueException.class) public void testCreateBasicEdgeZoneFailure() { - CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); - Mockito.when(cmd.isEdge()).thenReturn(true); - Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Basic.toString()); - Mockito.when(cmd.getDomainId()).thenReturn(null); + CreateZoneCmd cmd = createMockCreateZoneCmd(true, NetworkType.Basic.toString()); configurationMgr.createZone(cmd); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCreateBasicEdgeZoneFailure() { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(true); Mockito.when(cmd.getNetworkType()).thenReturn(NetworkType.Basic.toString()); Mockito.when(cmd.getDomainId()).thenReturn(null); configurationMgr.createZone(cmd); }
Reusable Method for MCI (click to expand)
private static CreateZoneCmd createMockCreateZoneCmd(boolean isEdgeReturn, String networkTypeReturn) { CreateZoneCmd cmd = Mockito.mock(CreateZoneCmd.class); Mockito.when(cmd.isEdge()).thenReturn(isEdgeReturn); Mockito.when(cmd.getNetworkType()).thenReturn(networkTypeReturn); Mockito.when(cmd.getDomainId()).thenReturn(null); return cmd; }

Mock Clone Instance #cloudstack_MCI_78

Reusable Method

private static NicProfile createMockNicProfile(String macAddress, Nic.ReservationStrategy reservationStrategy) { NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn(macAddress); when(nic.getReservationStrategy()).thenReturn(reservationStrategy); return nic; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_78_1

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
--- original +++ refactored @@ when(network.getDataCenterId()).thenReturn(NETWORK_ID); - final NicProfile nic = mock(NicProfile.class); - when(nic.getMacAddress()).thenReturn("macaddress"); - when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); + final NicProfile nic = createMockNicProfile("macaddress", ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static NicProfile createMockNicProfile(String macAddress, Nic.ReservationStrategy reservationStrategy) { NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn(macAddress); when(nic.getReservationStrategy()).thenReturn(reservationStrategy); return nic; }

Test Case ID #cloudstack_Test_78_2

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
--- original +++ refactored @@ when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); - final NicProfile nic = mock(NicProfile.class); - when(nic.getMacAddress()).thenReturn("macaddress"); - when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); + final NicProfile nic = createMockNicProfile("macaddress", ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); @@
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static NicProfile createMockNicProfile(String macAddress, Nic.ReservationStrategy reservationStrategy) { NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn(macAddress); when(nic.getReservationStrategy()).thenReturn(reservationStrategy); return nic; }

Test Case ID #cloudstack_Test_78_3

Test Case Name: testDeallocate(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); - final NicProfile nic = mock(NicProfile.class); - when(nic.getMacAddress()).thenReturn("macaddress"); - when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); + final NicProfile nic = createMockNicProfile("macaddress", ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); @@
Original Test Code (click to expand)
@Test public void testDeallocate() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.deallocate(network, nic, vmProfile); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static NicProfile createMockNicProfile(String macAddress, Nic.ReservationStrategy reservationStrategy) { NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn(macAddress); when(nic.getReservationStrategy()).thenReturn(reservationStrategy); return nic; }

Test Case ID #cloudstack_Test_78_4

Test Case Name: testDeallocateFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); - final NicProfile nic = mock(NicProfile.class); - when(nic.getMacAddress()).thenReturn("macaddress"); - when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); + final NicProfile nic = createMockNicProfile("macaddress", ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); @@
Original Test Code (click to expand)
@Test public void testDeallocateFail() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.deallocate(network, nic, vmProfile); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static NicProfile createMockNicProfile(String macAddress, Nic.ReservationStrategy reservationStrategy) { NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn(macAddress); when(nic.getReservationStrategy()).thenReturn(reservationStrategy); return nic; }

Mock Clone Instance #cloudstack_MCI_79

Reusable Method

private static NicProfile createMockNicProfile(String ipv4Address) { NicProfile nicProfile = mock(NicProfile.class); when(nicProfile.getIPv4Address()).thenReturn(ipv4Address); return nicProfile; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_79_1

Test Case Name: releasePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nicProfile

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); - NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); - when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); + NicProfile nicProfile = createMockNicProfile("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); @@
Original Test Code (click to expand)
@Test public void releasePublicNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
private static NicProfile createMockNicProfile(String ipv4Address) { NicProfile nicProfile = mock(NicProfile.class); when(nicProfile.getIPv4Address()).thenReturn(ipv4Address); return nicProfile; }

Test Case ID #cloudstack_Test_79_2

Test Case Name: releaseManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nicProfile

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); - NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); - when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); + NicProfile nicProfile = createMockNicProfile("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); @@
Original Test Code (click to expand)
@Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
private static NicProfile createMockNicProfile(String ipv4Address) { NicProfile nicProfile = mock(NicProfile.class); when(nicProfile.getIPv4Address()).thenReturn(ipv4Address); return nicProfile; }

Test Case ID #cloudstack_Test_79_3

Test Case Name: releaseWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nicProfile

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); - NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); - when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); + NicProfile nicProfile = createMockNicProfile("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); }
Reusable Method for MCI (click to expand)
private static NicProfile createMockNicProfile(String ipv4Address) { NicProfile nicProfile = mock(NicProfile.class); when(nicProfile.getIPv4Address()).thenReturn(ipv4Address); return nicProfile; }

Mock Clone Instance #cloudstack_MCI_80

Reusable Method

// === Declare in class scope === private NicProfile nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(NicProfile.class); } // === Replace local variable in test with === nic;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_80_1

Test Case Name: prepareMigrationTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void prepareMigrationTest() { - NicProfile nic = mock(NicProfile.class); + // removed local mock; replaced with global field `nic` Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); + assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Original Test Code (click to expand)
@Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(NicProfile.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_80_2

Test Case Name: rollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void rollbackMigration() { - NicProfile nic = mock(NicProfile.class); + // removed local mock; replaced with global field `nic` Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); - tungstenElement.rollbackMigration(nic, network, vm, src, dest); + tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void rollbackMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(NicProfile.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_80_3

Test Case Name: commitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void commitMigration() { - NicProfile nic = mock(NicProfile.class); + // removed local mock; replaced with global field `nic` Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); - tungstenElement.commitMigration(nic, network, vm, src, dest); + tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void commitMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(NicProfile.class); } // === Replace local variable in test with === nic;

Mock Clone Instance #cloudstack_MCI_81

Reusable Method

// === Declare in class scope === private NicProfile nicProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicProfile = mock(NicProfile.class); } // === Replace local variable in test with === nicProfile;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_81_1

Test Case Name: testDeallocate(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: nicProfile

Suggested Diff
@@ @Test public void testDeallocate() { final Network network = mock(Network.class); - final NicProfile nicProfile = mock(NicProfile.class); + // removed local mock; replaced with global field `nicProfile` final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(network.getDataCenterId()).thenReturn(1L); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); guru.deallocate(network, nicProfile, virtualMachineProfile); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testDeallocate() { final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(network.getDataCenterId()).thenReturn(1L); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); guru.deallocate(network, nicProfile, virtualMachineProfile); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nicProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicProfile = mock(NicProfile.class); } // === Replace local variable in test with === nicProfile;

Test Case ID #cloudstack_Test_81_2

Test Case Name: testDeallocateWithException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: nicProfile

Suggested Diff
@@ @Test(expected = CloudRuntimeException.class) public void testDeallocateWithException() { final Network network = mock(Network.class); - final NicProfile nicProfile = mock(NicProfile.class); + // removed local mock; replaced with global field `nicProfile` final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(new IllegalArgumentException()); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); guru.deallocate(network, nicProfile, virtualMachineProfile); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testDeallocateWithException() { final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(new IllegalArgumentException()); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); guru.deallocate(network, nicProfile, virtualMachineProfile); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nicProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicProfile = mock(NicProfile.class); } // === Replace local variable in test with === nicProfile;

Test Case ID #cloudstack_Test_81_3

Test Case Name: testRelease(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void testRelease() { - final NicProfile nic = mock(NicProfile.class); + // removed local mock; replaced with global field `nicProfile` final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(hostDao.findById(anyLong())).thenReturn(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); - guru.release(nic, vm, "test"); + guru.release(nicProfile, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testRelease() { final NicProfile nic = mock(NicProfile.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(hostDao.findById(anyLong())).thenReturn(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); guru.release(nic, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nicProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicProfile = mock(NicProfile.class); } // === Replace local variable in test with === nicProfile;

Test Case ID #cloudstack_Test_81_4

Test Case Name: testPrepareMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void testPrepareMigration() { - final NicProfile nic = mock(NicProfile.class); + // removed local mock; replaced with global field `nicProfile` final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); - guru.prepareMigration(nic, network, vm, dest, context); + guru.prepareMigration(nicProfile, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nicProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicProfile = mock(NicProfile.class); } // === Replace local variable in test with === nicProfile;

Test Case ID #cloudstack_Test_81_5

Test Case Name: testRollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void testRollbackMigration() { - final NicProfile nic = mock(NicProfile.class); + // removed local mock; replaced with global field `nicProfile` final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); - guru.rollbackMigration(nic, network, vmProfile, context, context); + guru.rollbackMigration(nicProfile, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testRollbackMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nicProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicProfile = mock(NicProfile.class); } // === Replace local variable in test with === nicProfile;

Test Case ID #cloudstack_Test_81_6

Test Case Name: testCommitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void testCommitMigration() { - final NicProfile nic = mock(NicProfile.class); + // removed local mock; replaced with global field `nicProfile` final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); - guru.commitMigration(nic, network, vmProfile, context, context); + guru.commitMigration(nicProfile, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testCommitMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicProfile nicProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicProfile = mock(NicProfile.class); } // === Replace local variable in test with === nicProfile;

Mock Clone Instance #cloudstack_MCI_82

Reusable Method

private static List<BrocadeVcsDeviceVO> createMockDevicesList() { @SuppressWarnings("unchecked") List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); return devices; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_82_1

Test Case Name: testImplementFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: devices

Suggested Diff
--- original +++ refactored @@ when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); - final List<BrocadeVcsDeviceVO> devices = mock(List.class); - when(devices.isEmpty()).thenReturn(true); + final List<BrocadeVcsDeviceVO> devices = createMockDevicesList(); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); @@
Original Test Code (click to expand)
@Test public void testImplementFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static List<BrocadeVcsDeviceVO> createMockDevicesList() { @SuppressWarnings("unchecked") List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); return devices; }

Test Case ID #cloudstack_Test_82_2

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: devices

Suggested Diff
--- original +++ refactored @@ final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); - final List<BrocadeVcsDeviceVO> devices = mock(List.class); - when(devices.isEmpty()).thenReturn(true); + final List<BrocadeVcsDeviceVO> devices = createMockDevicesList(); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); @@
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static List<BrocadeVcsDeviceVO> createMockDevicesList() { @SuppressWarnings("unchecked") List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); return devices; }

Test Case ID #cloudstack_Test_82_3

Test Case Name: testDeallocateFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: devices

Suggested Diff
--- original +++ refactored @@ when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); - final List<BrocadeVcsDeviceVO> devices = mock(List.class); - when(devices.isEmpty()).thenReturn(true); + final List<BrocadeVcsDeviceVO> devices = createMockDevicesList(); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); @@
Original Test Code (click to expand)
@Test public void testDeallocateFail() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.deallocate(network, nic, vmProfile); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static List<BrocadeVcsDeviceVO> createMockDevicesList() { @SuppressWarnings("unchecked") List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); return devices; }

Test Case ID #cloudstack_Test_82_4

Test Case Name: testTrashFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: devices

Suggested Diff
--- original +++ refactored @@ when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); - final List<BrocadeVcsDeviceVO> devices = mock(List.class); - when(devices.isEmpty()).thenReturn(true); + final List<BrocadeVcsDeviceVO> devices = createMockDevicesList(); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final boolean result = guru.trash(network, offering); @@
Original Test Code (click to expand)
@Test public void testTrashFail() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsNetworkVlanMappingVO mapping = mock(BrocadeVcsNetworkVlanMappingVO.class); when(mapping.getVlanId()).thenReturn(14); when(vcsmapdao.findByNetworkId(anyLong())).thenReturn(mapping); when(vcsmapdao.remove(anyLong())).thenReturn(true); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final boolean result = guru.trash(network, offering); assertTrue(result == false); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static List<BrocadeVcsDeviceVO> createMockDevicesList() { @SuppressWarnings("unchecked") List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); return devices; }

Mock Clone Instance #cloudstack_MCI_83

Reusable Method

private static TemplateInfo createMockTemplateInfo(String uuidReturn) { TemplateInfo templateInfo = Mockito.mock(TemplateInfo.class); Mockito.when(templateInfo.getUuid()).thenReturn(uuidReturn); return templateInfo; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_83_1

Test Case Name: prepareTestGetTemplateUuid(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\KvmNonManagedStorageSystemDataMotionTest.java)

Mock Object Variable Name: templateImage

Suggested Diff
--- original +++ refactored @@ private String prepareTestGetTemplateUuid() { - TemplateInfo templateImage = Mockito.mock(TemplateInfo.class); String expectedTemplateUuid = "template uuid"; - Mockito.when(templateImage.getUuid()).thenReturn(expectedTemplateUuid); + TemplateInfo templateImage = createMockTemplateInfo(expectedTemplateUuid); Mockito.doReturn(templateImage).when(templateDataFactory).getTemplate(0l, DataStoreRole.Image); return expectedTemplateUuid; }
Original Test Code (click to expand)
private String prepareTestGetTemplateUuid() { TemplateInfo templateImage = Mockito.mock(TemplateInfo.class); String expectedTemplateUuid = "template uuid"; Mockito.when(templateImage.getUuid()).thenReturn(expectedTemplateUuid); Mockito.doReturn(templateImage).when(templateDataFactory).getTemplate(0l, DataStoreRole.Image); return expectedTemplateUuid; }
Reusable Method for MCI (click to expand)
private static TemplateInfo createMockTemplateInfo(String uuidReturn) { TemplateInfo templateInfo = Mockito.mock(TemplateInfo.class); Mockito.when(templateInfo.getUuid()).thenReturn(uuidReturn); return templateInfo; }

Test Case ID #cloudstack_Test_83_2

Test Case Name: configureAndTestcopyTemplateToTargetStorageIfNeeded(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\KvmNonManagedStorageSystemDataMotionTest.java)

Mock Object Variable Name: sourceTemplateInfo

Suggested Diff
--- original +++ refactored @@ Mockito.lenient().when(sourceTemplateDataStore.getName()).thenReturn("sourceTemplateName"); - TemplateInfo sourceTemplateInfo = Mockito.mock(TemplateInfo.class); - Mockito.when(sourceTemplateInfo.getInstallPath()).thenReturn("installPath"); - Mockito.when(sourceTemplateInfo.getUuid()).thenReturn("uuid"); - Mockito.when(sourceTemplateInfo.getId()).thenReturn(0l); - Mockito.when(sourceTemplateInfo.getUrl()).thenReturn("url"); - Mockito.when(sourceTemplateInfo.getDisplayText()).thenReturn("display text"); - Mockito.when(sourceTemplateInfo.getChecksum()).thenReturn("checksum"); - Mockito.when(sourceTemplateInfo.isRequiresHvm()).thenReturn(true); - Mockito.when(sourceTemplateInfo.getAccountId()).thenReturn(0l); - Mockito.when(sourceTemplateInfo.getUniqueName()).thenReturn("unique name"); - Mockito.when(sourceTemplateInfo.getFormat()).thenReturn(ImageFormat.QCOW2); - Mockito.when(sourceTemplateInfo.getSize()).thenReturn(0l); - Mockito.when(sourceTemplateInfo.getHypervisorType()).thenReturn(HypervisorType.KVM); + TemplateInfo sourceTemplateInfo = createMockTemplateInfo("uuid"); + Mockito.when(sourceTemplateInfo.getInstallPath()).thenReturn("installPath"); + Mockito.when(sourceTemplateInfo.getId()).thenReturn(0l); + Mockito.when(sourceTemplateInfo.getUrl()).thenReturn("url"); + Mockito.when(sourceTemplateInfo.getDisplayText()).thenReturn("display text"); + Mockito.when(sourceTemplateInfo.getChecksum()).thenReturn("checksum"); + Mockito.when(sourceTemplateInfo.isRequiresHvm()).thenReturn(true); + Mockito.when(sourceTemplateInfo.getAccountId()).thenReturn(0l); + Mockito.when(sourceTemplateInfo.getUniqueName()).thenReturn("unique name"); + Mockito.when(sourceTemplateInfo.getFormat()).thenReturn(ImageFormat.QCOW2); + Mockito.when(sourceTemplateInfo.getSize()).thenReturn(0l); + Mockito.when(sourceTemplateInfo.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(vmTemplatePoolDao.findByPoolTemplate(Mockito.anyLong(), Mockito.anyLong(), nullable(String.class))).thenReturn(vmTemplateStoragePoolVO); @@
Original Test Code (click to expand)
private void configureAndTestcopyTemplateToTargetStorageIfNeeded(VMTemplateStoragePoolVO vmTemplateStoragePoolVO, StoragePoolType storagePoolType, int times) { DataStore destDataStore = Mockito.mock(DataStore.class); Host destHost = Mockito.mock(Host.class); VolumeInfo srcVolumeInfo = Mockito.mock(VolumeInfo.class); Mockito.when(srcVolumeInfo.getTemplateId()).thenReturn(0l); Mockito.when(srcVolumeInfo.getVolumeType()).thenReturn(Volume.Type.ROOT); StoragePool srcStoragePool = Mockito.mock(StoragePool.class); VolumeInfo destVolumeInfo = Mockito.mock(VolumeInfo.class); Mockito.lenient().when(volumeDataFactory.getVolume(Mockito.anyLong(), Mockito.any(DataStore.class))).thenReturn(destVolumeInfo); StoragePool destStoragePool = Mockito.mock(StoragePool.class); Mockito.when(destStoragePool.getId()).thenReturn(0l); Mockito.when(destStoragePool.getPoolType()).thenReturn(storagePoolType); DataStore sourceTemplateDataStore = Mockito.mock(DataStore.class); Mockito.lenient().when(sourceTemplateDataStore.getName()).thenReturn("sourceTemplateName"); TemplateInfo sourceTemplateInfo = Mockito.mock(TemplateInfo.class); Mockito.when(sourceTemplateInfo.getInstallPath()).thenReturn("installPath"); Mockito.when(sourceTemplateInfo.getUuid()).thenReturn("uuid"); Mockito.when(sourceTemplateInfo.getId()).thenReturn(0l); Mockito.when(sourceTemplateInfo.getUrl()).thenReturn("url"); Mockito.when(sourceTemplateInfo.getDisplayText()).thenReturn("display text"); Mockito.when(sourceTemplateInfo.getChecksum()).thenReturn("checksum"); Mockito.when(sourceTemplateInfo.isRequiresHvm()).thenReturn(true); Mockito.when(sourceTemplateInfo.getAccountId()).thenReturn(0l); Mockito.when(sourceTemplateInfo.getUniqueName()).thenReturn("unique name"); Mockito.when(sourceTemplateInfo.getFormat()).thenReturn(ImageFormat.QCOW2); Mockito.when(sourceTemplateInfo.getSize()).thenReturn(0l); Mockito.when(sourceTemplateInfo.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(vmTemplatePoolDao.findByPoolTemplate(Mockito.anyLong(), Mockito.anyLong(), nullable(String.class))).thenReturn(vmTemplateStoragePoolVO); Mockito.when(dataStoreManagerImpl.getRandomImageStore(Mockito.anyLong())).thenReturn(sourceTemplateDataStore); Mockito.when(templateDataFactory.getTemplate(Mockito.anyLong(), Mockito.eq(sourceTemplateDataStore))).thenReturn(sourceTemplateInfo); Mockito.when(templateDataFactory.getTemplate(Mockito.anyLong(), Mockito.eq(destDataStore))).thenReturn(sourceTemplateInfo); kvmNonManagedStorageDataMotionStrategy.copyTemplateToTargetFilesystemStorageIfNeeded(srcVolumeInfo, srcStoragePool, destDataStore, destStoragePool, destHost); Mockito.lenient().doNothing().when(kvmNonManagedStorageDataMotionStrategy).updateTemplateReferenceIfSuccessfulCopy(Mockito.anyLong(), Mockito.anyString(), Mockito.anyLong(), Mockito.anyLong()); InOrder verifyInOrder = Mockito.inOrder(vmTemplatePoolDao, dataStoreManagerImpl, templateDataFactory, kvmNonManagedStorageDataMotionStrategy); verifyInOrder.verify(vmTemplatePoolDao, Mockito.times(1)).findByPoolTemplate(Mockito.anyLong(), Mockito.anyLong(), nullable(String.class)); verifyInOrder.verify(dataStoreManagerImpl, Mockito.times(times)).getRandomImageStore(Mockito.anyLong()); verifyInOrder.verify(templateDataFactory, Mockito.times(times)).getTemplate(Mockito.anyLong(), Mockito.eq(sourceTemplateDataStore)); verifyInOrder.verify(templateDataFactory, Mockito.times(times)).getTemplate(Mockito.anyLong(), Mockito.eq(destDataStore)); verifyInOrder.verify(kvmNonManagedStorageDataMotionStrategy, Mockito.times(times)).sendCopyCommand(Mockito.eq(destHost), Mockito.any(TemplateObjectTO.class), Mockito.any(TemplateObjectTO.class), Mockito.eq(destDataStore)); }
Reusable Method for MCI (click to expand)
private static TemplateInfo createMockTemplateInfo(String uuidReturn) { TemplateInfo templateInfo = Mockito.mock(TemplateInfo.class); Mockito.when(templateInfo.getUuid()).thenReturn(uuidReturn); return templateInfo; }

Mock Clone Instance #cloudstack_MCI_84

Reusable Method

public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_84_1

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricLogicalRouterCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
--- original +++ refactored @@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listRoutingLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricLogicalRouterCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricLogicalRouterCmd.getResponseObject()); @@
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listRoutingLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricLogicalRouterCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricLogicalRouterCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_2

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricNetworkCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenNetwork(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricNetworkCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricNetworkCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenNetwork(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricNetworkCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricNetworkCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_3

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricNicCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenNic(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricNicCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricNicCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenNic(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricNicCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricNicCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_4

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricPolicyCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenPolicy(ArgumentMatchers.anyLong(), ArgumentMatchers.anyLong(), ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricPolicyCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricPolicyCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenPolicy(ArgumentMatchers.anyLong(), ArgumentMatchers.anyLong(), ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricPolicyCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricPolicyCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_5

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricPolicyRuleCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); - Mockito.when(tungstenService.listTungstenPolicyRule(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); + Mockito.when(tungstenService.listTungstenPolicyRule(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricPolicyRuleCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricPolicyRuleCmd.getResponseObject()); }
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenPolicyRule(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricPolicyRuleCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricPolicyRuleCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_6

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricServiceGroupCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenServiceGroup(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricServiceGroupCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricServiceGroupCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenServiceGroup(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricServiceGroupCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricServiceGroupCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_7

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricTagCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenTags(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricTagCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricTagCmd.getResponseObject()); }
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenTags(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricTagCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricTagCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_8

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricTagTypeCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenTagTypes(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricTagTypeCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricTagTypeCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenTagTypes(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricTagTypeCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricTagTypeCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_9

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricVmCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenVm(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricVmCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricVmCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenVm(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricVmCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricVmCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_10

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricAddressGroupCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenAddressGroup(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricAddressGroupCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricAddressGroupCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenAddressGroup(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricAddressGroupCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricAddressGroupCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_11

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricApplictionPolicySetCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenApplicationPolicySet(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricApplictionPolicySetCmd.execute();
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenApplicationPolicySet(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricApplictionPolicySetCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricApplictionPolicySetCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_12

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricFirewallPolicyCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); - Mockito.when(tungstenService.listTungstenFirewallPolicy(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); + Mockito.when(tungstenService.listTungstenFirewallPolicy(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricFirewallPolicyCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricFirewallPolicyCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenFirewallPolicy(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricFirewallPolicyCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricFirewallPolicyCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Test Case ID #cloudstack_Test_84_13

Test Case Name: executeAllZoneTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\ListTungstenFabricFirewallRuleCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); - Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); + tungstenService = MockTungstenService.createMockTungstenService(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenFirewallRule(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricFirewallRuleCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricFirewallRuleCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeAllZoneTest() throws Exception { BaseResponse baseResponse = Mockito.mock(BaseResponse.class); List<BaseResponse> baseResponseList = Arrays.asList(baseResponse); ListResponse<BaseResponse> responseList = Mockito.mock(ListResponse.class); TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); List<TungstenProviderVO> tungstenProviderVOList = Arrays.asList(tungstenProviderVO); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); Mockito.when(tungstenService.listTungstenFirewallRule(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponseList); PowerMockito.whenNew(ListResponse.class).withAnyArguments().thenReturn(responseList); listTungstenFabricFirewallRuleCmd.execute(); Assert.assertEquals(responseList, listTungstenFabricFirewallRuleCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<TungstenProviderVO> tungstenProviderVOList) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.getTungstenProviders()).thenReturn(tungstenProviderVOList); return tungstenService; } }

Mock Clone Instance #cloudstack_MCI_85

Reusable Method

public class MockTungstenService { public static TungstenService createMockTungstenService(List<String> listConnectedNetworkReturn) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())) .thenReturn(listConnectedNetworkReturn); return tungstenService; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_85_1

Test Case Name: executeTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\AddTungstenFabricNetworkGatewayToLogicalRouterCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ String network = "123"; List<String> networkList = List.of(network); BaseResponse baseResponse = Mockito.mock(BaseResponse.class); - Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(networkList); - Mockito.when(tungstenService.addNetworkGatewayToLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponse); + tungstenService = MockTungstenService.createMockTungstenService(networkList); + Mockito.when(tungstenService.addNetworkGatewayToLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponse); addTungstenFabricNetworkGatewayToLogicalRouterCmd.execute(); Assert.assertEquals(baseResponse, addTungstenFabricNetworkGatewayToLogicalRouterCmd.getResponseObject()); }
Original Test Code (click to expand)
@Test public void executeTest() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException { String network = "123"; List<String> networkList = List.of(network); BaseResponse baseResponse = Mockito.mock(BaseResponse.class); Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(networkList); Mockito.when(tungstenService.addNetworkGatewayToLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponse); addTungstenFabricNetworkGatewayToLogicalRouterCmd.execute(); Assert.assertEquals(baseResponse, addTungstenFabricNetworkGatewayToLogicalRouterCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<String> listConnectedNetworkReturn) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())) .thenReturn(listConnectedNetworkReturn); return tungstenService; } }

Test Case ID #cloudstack_Test_85_2

Test Case Name: executeTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\DeleteTungstenFabricLogicalRouterCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<String> networkList = new ArrayList<>(); - Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(networkList); + tungstenService = MockTungstenService.createMockTungstenService(networkList); Mockito.when(tungstenService.deleteLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(true); PowerMockito.whenNew(SuccessResponse.class).withAnyArguments().thenReturn(successResponse); deleteTungstenFabricLogicalRouterCmd.execute(); Assert.assertEquals(successResponse, deleteTungstenFabricLogicalRouterCmd.getResponseObject()); }
Original Test Code (click to expand)
@Test public void executeTest() throws Exception { SuccessResponse successResponse = Mockito.mock(SuccessResponse.class); List<String> networkList = new ArrayList<>(); Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(networkList); Mockito.when(tungstenService.deleteLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(true); PowerMockito.whenNew(SuccessResponse.class).withAnyArguments().thenReturn(successResponse); deleteTungstenFabricLogicalRouterCmd.execute(); Assert.assertEquals(successResponse, deleteTungstenFabricLogicalRouterCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<String> listConnectedNetworkReturn) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())) .thenReturn(listConnectedNetworkReturn); return tungstenService; } }

Test Case ID #cloudstack_Test_85_3

Test Case Name: executeTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\api\command\RemoveTungstenFabricNetworkGatewayFromLogicalRouterCmdTest.java)

Mock Object Variable Name: tungstenService

Suggested Diff
@@ List<String> networkList = Arrays.asList("test"); BaseResponse baseResponse = Mockito.mock(BaseResponse.class); - Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(networkList); - Mockito.when(tungstenService.removeNetworkGatewayFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponse); + tungstenService = MockTungstenService.createMockTungstenService(networkList); + Mockito.when(tungstenService.removeNetworkGatewayFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponse); removeTungstenFabricNetworkGatewayFromLogicalRouterCmd.execute(); Assert.assertEquals(baseResponse, removeTungstenFabricNetworkGatewayFromLogicalRouterCmd.getResponseObject());
Original Test Code (click to expand)
@Test public void executeTest() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException { List<String> networkList = Arrays.asList("test"); BaseResponse baseResponse = Mockito.mock(BaseResponse.class); Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())).thenReturn(networkList); Mockito.when(tungstenService.removeNetworkGatewayFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn(baseResponse); removeTungstenFabricNetworkGatewayFromLogicalRouterCmd.execute(); Assert.assertEquals(baseResponse, removeTungstenFabricNetworkGatewayFromLogicalRouterCmd.getResponseObject()); }
Reusable Method for MCI (click to expand)
public class MockTungstenService { public static TungstenService createMockTungstenService(List<String> listConnectedNetworkReturn) { TungstenService tungstenService = Mockito.mock(TungstenService.class); Mockito.when(tungstenService.listConnectedNetworkFromLogicalRouter(ArgumentMatchers.anyLong(), ArgumentMatchers.anyString())) .thenReturn(listConnectedNetworkReturn); return tungstenService; } }

Mock Clone Instance #cloudstack_MCI_86

Reusable Method

// === Declare in class scope === private SearchCriteria<UserDataVO> sc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { sc = Mockito.mock(SearchCriteria.class); } // === Replace local variable in test with === sc;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_86_1

Test Case Name: testListUserDataById(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: sc

Suggested Diff
@@ when(sb.entity()).thenReturn(userData); - SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); + // removed local mock; replaced with global field `sc` when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>();
Original Test Code (click to expand)
@Test public void testListUserDataById() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private SearchCriteria<UserDataVO> sc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { sc = Mockito.mock(SearchCriteria.class); } // === Replace local variable in test with === sc;

Test Case ID #cloudstack_Test_86_2

Test Case Name: testListUserDataByName(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: sc

Suggested Diff
@@ when(sb.entity()).thenReturn(userData); - SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); + // removed local mock; replaced with global field `sc` when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>();
Original Test Code (click to expand)
@Test public void testListUserDataByName() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getName()).thenReturn("testSearchUserdataName"); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private SearchCriteria<UserDataVO> sc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { sc = Mockito.mock(SearchCriteria.class); } // === Replace local variable in test with === sc;

Test Case ID #cloudstack_Test_86_3

Test Case Name: testListUserDataByKeyword(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: sc

Suggested Diff
@@ when(sb.entity()).thenReturn(userData); - SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); + // removed local mock; replaced with global field `sc` when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>();
Original Test Code (click to expand)
@Test public void testListUserDataByKeyword() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getKeyword()).thenReturn("testSearchUserdataKeyword"); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private SearchCriteria<UserDataVO> sc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { sc = Mockito.mock(SearchCriteria.class); } // === Replace local variable in test with === sc;

Mock Clone Instance #cloudstack_MCI_87

Reusable Method

private static HttpClient createMockHttpClient(String executeReturn) throws IOException { HttpClient client = mock(HttpClient.class); when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(executeReturn); return client; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_87_1

Test Case Name: loginTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\stratosphere-ssp\src\test\java\org\apache\cloudstack\network\element\SspClientTest.java)

Mock Object Variable Name: client

Suggested Diff
--- original +++ refactored @@ SspClient sspClient = spy(new SspClient(apiUrl, username, password)); - HttpClient client = mock(HttpClient.class); - doReturn(client).when(sspClient).getHttpClient(); - when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(""); + HttpClient client = createMockHttpClient(""); + doReturn(client).when(sspClient).getHttpClient(); assertTrue(sspClient.login()); assertTrue(sspClient.login()); assertTrue(sspClient.login()); @@
Original Test Code (click to expand)
@Test public void loginTest() throws Exception { SspClient sspClient = spy(new SspClient(apiUrl, username, password)); HttpClient client = mock(HttpClient.class); doReturn(client).when(sspClient).getHttpClient(); when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(""); assertTrue(sspClient.login()); assertTrue(sspClient.login()); assertTrue(sspClient.login()); }
Reusable Method for MCI (click to expand)
private static HttpClient createMockHttpClient(String executeReturn) throws IOException { HttpClient client = mock(HttpClient.class); when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(executeReturn); return client; }

Test Case ID #cloudstack_Test_87_2

Test Case Name: createNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\stratosphere-ssp\src\test\java\org\apache\cloudstack\network\element\SspClientTest.java)

Mock Object Variable Name: client

Suggested Diff
--- original +++ refactored @@ String networkName = "example network 1"; String tenant_net_uuid = UUID.randomUUID().toString(); SspClient sspClient = spy(new SspClient(apiUrl, username, password)); - HttpClient client = mock(HttpClient.class); + HttpClient client = createMockHttpClient("{\"uuid\":\"" + tenant_net_uuid + "\",\"name\":\"" + networkName + "\",\"tenant_uuid\":\"" + uuid + "\"}"); doReturn(client).when(sspClient).getHttpClient(); - String body = "{\"uuid\":\"" + tenant_net_uuid + "\",\"name\":\"" + networkName + "\",\"tenant_uuid\":\"" + uuid + "\"}"; - when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(body); SspClient.TenantNetwork tnet = sspClient.createTenantNetwork(uuid, networkName); assertEquals(tnet.name, networkName); assertEquals(tnet.uuid, tenant_net_uuid); assertEquals(tnet.tenantUuid, uuid); @@
Original Test Code (click to expand)
@Test public void createNetworkTest() throws Exception { String networkName = "example network 1"; String tenant_net_uuid = UUID.randomUUID().toString(); SspClient sspClient = spy(new SspClient(apiUrl, username, password)); HttpClient client = mock(HttpClient.class); doReturn(client).when(sspClient).getHttpClient(); String body = "{\"uuid\":\"" + tenant_net_uuid + "\",\"name\":\"" + networkName + "\",\"tenant_uuid\":\"" + uuid + "\"}"; when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(body); SspClient.TenantNetwork tnet = sspClient.createTenantNetwork(uuid, networkName); assertEquals(tnet.name, networkName); assertEquals(tnet.uuid, tenant_net_uuid); assertEquals(tnet.tenantUuid, uuid); }
Reusable Method for MCI (click to expand)
private static HttpClient createMockHttpClient(String executeReturn) throws IOException { HttpClient client = mock(HttpClient.class); when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(executeReturn); return client; }

Test Case ID #cloudstack_Test_87_3

Test Case Name: deleteNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\stratosphere-ssp\src\test\java\org\apache\cloudstack\network\element\SspClientTest.java)

Mock Object Variable Name: client

Suggested Diff
@@ SspClient sspClient = spy(new SspClient(apiUrl, username, password)); - HttpClient client = mock(HttpClient.class); - doReturn(client).when(sspClient).getHttpClient(); - when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(""); + HttpClient client = createMockHttpClient(""); + doReturn(client).when(sspClient).getHttpClient(); sspClient.deleteTenantNetwork(tenant_net_uuid); @@
Original Test Code (click to expand)
@Test public void deleteNetworkTest() throws Exception { String tenant_net_uuid = UUID.randomUUID().toString(); SspClient sspClient = spy(new SspClient(apiUrl, username, password)); HttpClient client = mock(HttpClient.class); doReturn(client).when(sspClient).getHttpClient(); when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(""); sspClient.deleteTenantNetwork(tenant_net_uuid); }
Reusable Method for MCI (click to expand)
private static HttpClient createMockHttpClient(String executeReturn) throws IOException { HttpClient client = mock(HttpClient.class); when(client.execute(any(HttpUriRequest.class), any(BasicResponseHandler.class))).thenReturn(executeReturn); return client; }

Mock Clone Instance #cloudstack_MCI_88

Reusable Method

private static User createMockUserWithId(long id) { User userMock = Mockito.mock(User.class); Mockito.doReturn(id).when(userMock).getId(); return userMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_88_1

Test Case Name: validateAndUpdatApiAndSecretKeyIfNeededTestApiKeyAlreadyUsedBySomeoneElse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: otherUserMock

Suggested Diff
@@ Mockito.doReturn(1L).when(userVoMock).getId(); - User otherUserMock = Mockito.mock(User.class); - Mockito.doReturn(2L).when(otherUserMock).getId(); + User otherUserMock = createMockUserWithId(2L); Pair<User, Account> pairUserAccountMock = new Pair<User, Account>(otherUserMock, Mockito.mock(Account.class)); Mockito.doReturn(pairUserAccountMock).when(_accountDao).findUserAccountByApiKey(apiKey); accountManagerImpl.validateAndUpdateApiAndSecretKeyIfNeeded(UpdateUserCmdMock, userVoMock); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void validateAndUpdatApiAndSecretKeyIfNeededTestApiKeyAlreadyUsedBySomeoneElse() { String apiKey = "apiKey"; Mockito.doReturn(apiKey).when(UpdateUserCmdMock).getApiKey(); Mockito.doReturn("secretKey").when(UpdateUserCmdMock).getSecretKey(); Mockito.doReturn(1L).when(userVoMock).getId(); User otherUserMock = Mockito.mock(User.class); Mockito.doReturn(2L).when(otherUserMock).getId(); Pair<User, Account> pairUserAccountMock = new Pair<User, Account>(otherUserMock, Mockito.mock(Account.class)); Mockito.doReturn(pairUserAccountMock).when(_accountDao).findUserAccountByApiKey(apiKey); accountManagerImpl.validateAndUpdateApiAndSecretKeyIfNeeded(UpdateUserCmdMock, userVoMock); }
Reusable Method for MCI (click to expand)
private static User createMockUserWithId(long id) { User userMock = Mockito.mock(User.class); Mockito.doReturn(id).when(userMock).getId(); return userMock; }

Test Case ID #cloudstack_Test_88_2

Test Case Name: validateAndUpdatApiAndSecretKeyIfNeededTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: otherUserMock

Suggested Diff
@@ Mockito.doReturn(1L).when(userVoMock).getId(); - User otherUserMock = Mockito.mock(User.class); - Mockito.doReturn(1L).when(otherUserMock).getId(); + User otherUserMock = createMockUserWithId(1L); Pair<User, Account> pairUserAccountMock = new Pair<User, Account>(otherUserMock, Mockito.mock(Account.class)); Mockito.doReturn(pairUserAccountMock).when(_accountDao).findUserAccountByApiKey(apiKey); @@
Original Test Code (click to expand)
@Test public void validateAndUpdatApiAndSecretKeyIfNeededTest() { String apiKey = "apiKey"; Mockito.doReturn(apiKey).when(UpdateUserCmdMock).getApiKey(); String secretKey = "secretKey"; Mockito.doReturn(secretKey).when(UpdateUserCmdMock).getSecretKey(); Mockito.doReturn(1L).when(userVoMock).getId(); User otherUserMock = Mockito.mock(User.class); Mockito.doReturn(1L).when(otherUserMock).getId(); Pair<User, Account> pairUserAccountMock = new Pair<User, Account>(otherUserMock, Mockito.mock(Account.class)); Mockito.doReturn(pairUserAccountMock).when(_accountDao).findUserAccountByApiKey(apiKey); accountManagerImpl.validateAndUpdateApiAndSecretKeyIfNeeded(UpdateUserCmdMock, userVoMock); Mockito.verify(_accountDao).findUserAccountByApiKey(apiKey); Mockito.verify(userVoMock).setApiKey(apiKey); Mockito.verify(userVoMock).setSecretKey(secretKey); }
Reusable Method for MCI (click to expand)
private static User createMockUserWithId(long id) { User userMock = Mockito.mock(User.class); Mockito.doReturn(id).when(userMock).getId(); return userMock; }

Mock Clone Instance #cloudstack_MCI_89

Reusable Method

private static ArrayList<DomainVO> createMockArrayListDomainVO(boolean isEmptyReturn) { ArrayList<DomainVO> listMock = Mockito.mock(ArrayList.class); Mockito.doReturn(isEmptyReturn).when(listMock).isEmpty(); return listMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_89_1

Test Case Name: validateUniqueDomainNameTestExistingNameThrowsException(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\DomainManagerImplTest.java)

Mock Object Variable Name: listMock

Suggested Diff
@@ SearchCriteria scMock = Mockito.mock(SearchCriteria.class); - ArrayList<DomainVO> listMock = Mockito.mock(ArrayList.class); + ArrayList<DomainVO> listMock = createMockArrayListDomainVO(false); Mockito.doReturn(scMock).when(domainDaoMock).createSearchCriteria(); Mockito.doReturn(listMock).when(domainDaoMock).search(Mockito.any(SearchCriteria.class), Mockito.any()); - Mockito.doReturn(false).when(listMock).isEmpty(); domainManager.validateUniqueDomainName("test", 1L); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void validateUniqueDomainNameTestExistingNameThrowsException() { SearchCriteria scMock = Mockito.mock(SearchCriteria.class); ArrayList<DomainVO> listMock = Mockito.mock(ArrayList.class); Mockito.doReturn(scMock).when(domainDaoMock).createSearchCriteria(); Mockito.doReturn(listMock).when(domainDaoMock).search(Mockito.any(SearchCriteria.class), Mockito.any()); Mockito.doReturn(false).when(listMock).isEmpty(); domainManager.validateUniqueDomainName("test", 1L); }
Reusable Method for MCI (click to expand)
private static ArrayList<DomainVO> createMockArrayListDomainVO(boolean isEmptyReturn) { ArrayList<DomainVO> listMock = Mockito.mock(ArrayList.class); Mockito.doReturn(isEmptyReturn).when(listMock).isEmpty(); return listMock; }

Test Case ID #cloudstack_Test_89_2

Test Case Name: validateUniqueDomainNameTestUniqueNameDoesNotThrowException(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\DomainManagerImplTest.java)

Mock Object Variable Name: listMock

Suggested Diff
--- original +++ refactored @@ SearchCriteria scMock = Mockito.mock(SearchCriteria.class); - ArrayList<DomainVO> listMock = Mockito.mock(ArrayList.class); + ArrayList<DomainVO> listMock = createMockArrayListDomainVO(true); Mockito.doReturn(scMock).when(domainDaoMock).createSearchCriteria(); - Mockito.doReturn(listMock).when(domainDaoMock).search(Mockito.any(SearchCriteria.class), Mockito.any()); - Mockito.doReturn(true).when(listMock).isEmpty(); + Mockito.doReturn(listMock).when(domainDaoMock).search(Mockito.any(SearchCriteria.class), Mockito.any()); domainManager.validateUniqueDomainName("testUnique", 1L); Mockito.verify(domainDaoMock).createSearchCriteria(); Mockito.verify(scMock).addAnd("name", SearchCriteria.Op.EQ, "testUnique"); Mockito.verify(scMock).addAnd("parent", SearchCriteria.Op.EQ, 1L); Mockito.verify(domainDaoMock).search(scMock, null); Mockito.verify(listMock).isEmpty(); @@
Original Test Code (click to expand)
@Test public void validateUniqueDomainNameTestUniqueNameDoesNotThrowException() { SearchCriteria scMock = Mockito.mock(SearchCriteria.class); ArrayList<DomainVO> listMock = Mockito.mock(ArrayList.class); Mockito.doReturn(scMock).when(domainDaoMock).createSearchCriteria(); Mockito.doReturn(listMock).when(domainDaoMock).search(Mockito.any(SearchCriteria.class), Mockito.any()); Mockito.doReturn(true).when(listMock).isEmpty(); domainManager.validateUniqueDomainName("testUnique", 1L); Mockito.verify(domainDaoMock).createSearchCriteria(); Mockito.verify(scMock).addAnd("name", SearchCriteria.Op.EQ, "testUnique"); Mockito.verify(scMock).addAnd("parent", SearchCriteria.Op.EQ, 1L); Mockito.verify(domainDaoMock).search(scMock, null); Mockito.verify(listMock).isEmpty(); }
Reusable Method for MCI (click to expand)
private static ArrayList<DomainVO> createMockArrayListDomainVO(boolean isEmptyReturn) { ArrayList<DomainVO> listMock = Mockito.mock(ArrayList.class); Mockito.doReturn(isEmptyReturn).when(listMock).isEmpty(); return listMock; }

Mock Clone Instance #cloudstack_MCI_90

Reusable Method

private static NetworkService createMockNetworkService(boolean releaseSecondaryIpReturn) { NetworkService networkService = Mockito.mock(NetworkService.class); Mockito.when(networkService.releaseSecondaryIpFromNic(Matchers.anyInt())).thenReturn(releaseSecondaryIpReturn); return networkService; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_90_1

Test Case Name: testRemoveIpFromVmNicSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\AddIpToVmNicTest.java)

Mock Object Variable Name: networkService

Suggested Diff
@@ @Test public void testRemoveIpFromVmNicSuccess() throws ResourceAllocationException, ResourceUnavailableException, ConcurrentOperationException, InsufficientCapacityException { - NetworkService networkService = Mockito.mock(NetworkService.class); RemoveIpFromVmNicCmd removeIpFromNic = Mockito.mock(RemoveIpFromVmNicCmd.class); - Mockito.when(networkService.releaseSecondaryIpFromNic(Matchers.anyInt())).thenReturn(true); + NetworkService networkService = createMockNetworkService(true); removeIpFromNic._networkService = networkService; removeIpFromNic.execute(); } @@
Original Test Code (click to expand)
@Test public void testRemoveIpFromVmNicSuccess() throws ResourceAllocationException, ResourceUnavailableException, ConcurrentOperationException, InsufficientCapacityException { NetworkService networkService = Mockito.mock(NetworkService.class); RemoveIpFromVmNicCmd removeIpFromNic = Mockito.mock(RemoveIpFromVmNicCmd.class); Mockito.when(networkService.releaseSecondaryIpFromNic(Matchers.anyInt())).thenReturn(true); removeIpFromNic._networkService = networkService; removeIpFromNic.execute(); }
Reusable Method for MCI (click to expand)
private static NetworkService createMockNetworkService(boolean releaseSecondaryIpReturn) { NetworkService networkService = Mockito.mock(NetworkService.class); Mockito.when(networkService.releaseSecondaryIpFromNic(Matchers.anyInt())).thenReturn(releaseSecondaryIpReturn); return networkService; }

Test Case ID #cloudstack_Test_90_2

Test Case Name: testRemoveIpFromVmNicFailure(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\AddIpToVmNicTest.java)

Mock Object Variable Name: networkService

Suggested Diff
--- original +++ refactored @@ @Test public void testRemoveIpFromVmNicFailure() throws InsufficientAddressCapacityException { - NetworkService networkService = Mockito.mock(NetworkService.class); RemoveIpFromVmNicCmd removeIpFromNic = Mockito.mock(RemoveIpFromVmNicCmd.class); - Mockito.when(networkService.releaseSecondaryIpFromNic(Matchers.anyInt())).thenReturn(false); + NetworkService networkService = createMockNetworkService(false); removeIpFromNic._networkService = networkService; successResponseGenerator = Mockito.mock(SuccessResponse.class); try { removeIpFromNic.execute(); } catch (InvalidParameterValueException exception) { Assert.assertEquals("Failed to remove secondary ip address for the nic", exception.getLocalizedMessage()); } } @@
Original Test Code (click to expand)
@Test public void testRemoveIpFromVmNicFailure() throws InsufficientAddressCapacityException { NetworkService networkService = Mockito.mock(NetworkService.class); RemoveIpFromVmNicCmd removeIpFromNic = Mockito.mock(RemoveIpFromVmNicCmd.class); Mockito.when(networkService.releaseSecondaryIpFromNic(Matchers.anyInt())).thenReturn(false); removeIpFromNic._networkService = networkService; successResponseGenerator = Mockito.mock(SuccessResponse.class); try { removeIpFromNic.execute(); } catch (InvalidParameterValueException exception) { Assert.assertEquals("Failed to remove secondary ip address for the nic", exception.getLocalizedMessage()); } }
Reusable Method for MCI (click to expand)
private static NetworkService createMockNetworkService(boolean releaseSecondaryIpReturn) { NetworkService networkService = Mockito.mock(NetworkService.class); Mockito.when(networkService.releaseSecondaryIpFromNic(Matchers.anyInt())).thenReturn(releaseSecondaryIpReturn); return networkService; }

Mock Clone Instance #cloudstack_MCI_91

Reusable Method

private static ResourceTag createMockResourceTag(long accountId) { ResourceTag resourceTag = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); return resourceTag; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_91_1

Test Case Name: testCheckTagsDeletePermission(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\tags\TaggedResourceManagerImplTest.java)

Mock Object Variable Name: resourceTag

Suggested Diff
--- original +++ refactored @@ Account caller = Mockito.mock(Account.class); Mockito.when(caller.getAccountId()).thenReturn(accountId); - ResourceTag resourceTag = Mockito.mock(ResourceTag.class); - Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); + ResourceTag resourceTag = createMockResourceTag(accountId); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag), caller); @@
Original Test Code (click to expand)
@Test public void testCheckTagsDeletePermission() { long accountId = 1L; Account caller = Mockito.mock(Account.class); Mockito.when(caller.getAccountId()).thenReturn(accountId); ResourceTag resourceTag = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag), caller); }
Reusable Method for MCI (click to expand)
private static ResourceTag createMockResourceTag(long accountId) { ResourceTag resourceTag = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); return resourceTag; }

Test Case ID #cloudstack_Test_91_2

Test Case Name: testCheckTagsDeletePermissionFail(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\tags\TaggedResourceManagerImplTest.java)

Mock Object Variable Name: resourceTag1

Suggested Diff
--- original +++ refactored @@ long callerAccountId = 1L; long ownerAccountId = 2L; Account caller = Mockito.mock(Account.class); Mockito.when(caller.getAccountId()).thenReturn(callerAccountId); - ResourceTag resourceTag1 = Mockito.mock(ResourceTag.class); - Mockito.when(resourceTag1.getAccountId()).thenReturn(callerAccountId); + ResourceTag resourceTag1 = createMockResourceTag(callerAccountId); ResourceTag resourceTag2 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag2.getAccountId()).thenReturn(ownerAccountId); Account owner = Mockito.mock(Account.class); Mockito.when(accountManager.getAccount(ownerAccountId)).thenReturn(owner); Mockito.doThrow(PermissionDeniedException.class).when(accountManager).checkAccess(caller, null, false, owner); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag1, resourceTag2), caller); @@
Original Test Code (click to expand)
@Test(expected = PermissionDeniedException.class) public void testCheckTagsDeletePermissionFail() { long callerAccountId = 1L; long ownerAccountId = 2L; Account caller = Mockito.mock(Account.class); Mockito.when(caller.getAccountId()).thenReturn(callerAccountId); ResourceTag resourceTag1 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag1.getAccountId()).thenReturn(callerAccountId); ResourceTag resourceTag2 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag2.getAccountId()).thenReturn(ownerAccountId); Account owner = Mockito.mock(Account.class); Mockito.when(accountManager.getAccount(ownerAccountId)).thenReturn(owner); Mockito.doThrow(PermissionDeniedException.class).when(accountManager).checkAccess(caller, null, false, owner); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag1, resourceTag2), caller); }
Reusable Method for MCI (click to expand)
private static ResourceTag createMockResourceTag(long accountId) { ResourceTag resourceTag = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); return resourceTag; }

Test Case ID #cloudstack_Test_91_3

Test Case Name: testCheckTagsDeletePermissionFail(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\tags\TaggedResourceManagerImplTest.java)

Mock Object Variable Name: resourceTag2

Suggested Diff
@@ ResourceTag resourceTag1 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag1.getAccountId()).thenReturn(callerAccountId); - ResourceTag resourceTag2 = Mockito.mock(ResourceTag.class); - Mockito.when(resourceTag2.getAccountId()).thenReturn(ownerAccountId); + ResourceTag resourceTag2 = createMockResourceTag(ownerAccountId); Account owner = Mockito.mock(Account.class); Mockito.when(accountManager.getAccount(ownerAccountId)).thenReturn(owner); @@
Original Test Code (click to expand)
@Test(expected = PermissionDeniedException.class) public void testCheckTagsDeletePermissionFail() { long callerAccountId = 1L; long ownerAccountId = 2L; Account caller = Mockito.mock(Account.class); Mockito.when(caller.getAccountId()).thenReturn(callerAccountId); ResourceTag resourceTag1 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag1.getAccountId()).thenReturn(callerAccountId); ResourceTag resourceTag2 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag2.getAccountId()).thenReturn(ownerAccountId); Account owner = Mockito.mock(Account.class); Mockito.when(accountManager.getAccount(ownerAccountId)).thenReturn(owner); Mockito.doThrow(PermissionDeniedException.class).when(accountManager).checkAccess(caller, null, false, owner); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag1, resourceTag2), caller); }
Reusable Method for MCI (click to expand)
private static ResourceTag createMockResourceTag(long accountId) { ResourceTag resourceTag = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); return resourceTag; }

Mock Clone Instance #cloudstack_MCI_92

Reusable Method

private static ImportUnmanagedInstanceCmd createMockImportUnmanagedInstanceCmd(String nameReturn) { ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = Mockito.mock(ImportUnmanagedInstanceCmd.class); when(importUnmanageInstanceCmd.getName()).thenReturn(nameReturn); when(importUnmanageInstanceCmd.getAccountName()).thenReturn(null); when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null); return importUnmanageInstanceCmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_92_1

Test Case Name: importUnmanagedInstanceTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\vm\UnmanagedVMsManagerImplTest.java)

Mock Object Variable Name: importUnmanageInstanceCmd

Suggested Diff
@@ @Test public void importUnmanagedInstanceTest() { - ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = Mockito.mock(ImportUnmanagedInstanceCmd.class); - when(importUnmanageInstanceCmd.getName()).thenReturn("TestInstance"); - when(importUnmanageInstanceCmd.getAccountName()).thenReturn(null); - when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null); + ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = createMockImportUnmanagedInstanceCmd("TestInstance"); doNothing().when(hostDao).loadHostTags(null); PowerMockito.mockStatic(UsageEventUtils.class); unmanagedVMsManager.importUnmanagedInstance(importUnmanageInstanceCmd); } @@
Original Test Code (click to expand)
@Test public void importUnmanagedInstanceTest() { ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = Mockito.mock(ImportUnmanagedInstanceCmd.class); when(importUnmanageInstanceCmd.getName()).thenReturn("TestInstance"); when(importUnmanageInstanceCmd.getAccountName()).thenReturn(null); when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null); doNothing().when(hostDao).loadHostTags(null); PowerMockito.mockStatic(UsageEventUtils.class); unmanagedVMsManager.importUnmanagedInstance(importUnmanageInstanceCmd); }
Reusable Method for MCI (click to expand)
private static ImportUnmanagedInstanceCmd createMockImportUnmanagedInstanceCmd(String nameReturn) { ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = Mockito.mock(ImportUnmanagedInstanceCmd.class); when(importUnmanageInstanceCmd.getName()).thenReturn(nameReturn); when(importUnmanageInstanceCmd.getAccountName()).thenReturn(null); when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null); return importUnmanageInstanceCmd; }

Test Case ID #cloudstack_Test_92_2

Test Case Name: importUnmanagedInstanceMissingInstanceTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\vm\UnmanagedVMsManagerImplTest.java)

Mock Object Variable Name: importUnmanageInstanceCmd

Suggested Diff
--- original +++ refactored @@ @Test(expected = ServerApiException.class) public void importUnmanagedInstanceMissingInstanceTest() { - ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = Mockito.mock(ImportUnmanagedInstanceCmd.class); - when(importUnmanageInstanceCmd.getName()).thenReturn("SomeInstance"); - when(importUnmanageInstanceCmd.getAccountName()).thenReturn(null); - when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null); + ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = createMockImportUnmanagedInstanceCmd("SomeInstance"); unmanagedVMsManager.importUnmanagedInstance(importUnmanageInstanceCmd); } @@
Original Test Code (click to expand)
@Test(expected = ServerApiException.class) public void importUnmanagedInstanceMissingInstanceTest() { ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = Mockito.mock(ImportUnmanagedInstanceCmd.class); when(importUnmanageInstanceCmd.getName()).thenReturn("SomeInstance"); when(importUnmanageInstanceCmd.getAccountName()).thenReturn(null); when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null); unmanagedVMsManager.importUnmanagedInstance(importUnmanageInstanceCmd); }
Reusable Method for MCI (click to expand)
private static ImportUnmanagedInstanceCmd createMockImportUnmanagedInstanceCmd(String nameReturn) { ImportUnmanagedInstanceCmd importUnmanageInstanceCmd = Mockito.mock(ImportUnmanagedInstanceCmd.class); when(importUnmanageInstanceCmd.getName()).thenReturn(nameReturn); when(importUnmanageInstanceCmd.getAccountName()).thenReturn(null); when(importUnmanageInstanceCmd.getDomainId()).thenReturn(null); return importUnmanageInstanceCmd; }

Mock Clone Instance #cloudstack_MCI_93

Reusable Method

private static RegisterUserDataCmd createMockRegisterUserDataCmd(String nameReturn, String userDataReturn) { RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); when(cmd.getName()).thenReturn(nameReturn); when(cmd.getUserData()).thenReturn(userDataReturn); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_93_1

Test Case Name: testSuccessfulRegisterUserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); - when(cmd.getUserData()).thenReturn("testUserdata"); - when(cmd.getName()).thenReturn("testName"); + RegisterUserDataCmd cmd = createMockRegisterUserDataCmd("testName", "testUserdata"); when(cmd.getHttpMethod()).thenReturn(BaseCmd.HTTPMethod.GET); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(null); @@
Original Test Code (click to expand)
@Test public void testSuccessfulRegisterUserdata() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getName()).thenReturn("testName"); when(cmd.getHttpMethod()).thenReturn(BaseCmd.HTTPMethod.GET); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(null); when(_userDataDao.findByUserData(account.getAccountId(), account.getDomainId(), "testUserdata")).thenReturn(null); UserData userData = spy.registerUserData(cmd); Assert.assertEquals("testName", userData.getName()); Assert.assertEquals("testUserdata", userData.getUserData()); Assert.assertEquals(1L, userData.getAccountId()); Assert.assertEquals(2L, userData.getDomainId()); }
Reusable Method for MCI (click to expand)
private static RegisterUserDataCmd createMockRegisterUserDataCmd(String nameReturn, String userDataReturn) { RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); when(cmd.getName()).thenReturn(nameReturn); when(cmd.getUserData()).thenReturn(userDataReturn); return cmd; }

Test Case ID #cloudstack_Test_93_2

Test Case Name: testRegisterExistingUserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); - when(cmd.getUserData()).thenReturn("testUserdata"); - when(cmd.getName()).thenReturn("testName"); + RegisterUserDataCmd cmd = createMockRegisterUserDataCmd("testName", "testUserdata"); UserDataVO userData = Mockito.mock(UserDataVO.class); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(null); when(_userDataDao.findByUserData(account.getAccountId(), account.getDomainId(), "testUserdata")).thenReturn(userData); spy.registerUserData(cmd); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testRegisterExistingUserdata() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getName()).thenReturn("testName"); UserDataVO userData = Mockito.mock(UserDataVO.class); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(null); when(_userDataDao.findByUserData(account.getAccountId(), account.getDomainId(), "testUserdata")).thenReturn(userData); spy.registerUserData(cmd); }
Reusable Method for MCI (click to expand)
private static RegisterUserDataCmd createMockRegisterUserDataCmd(String nameReturn, String userDataReturn) { RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); when(cmd.getName()).thenReturn(nameReturn); when(cmd.getUserData()).thenReturn(userDataReturn); return cmd; }

Test Case ID #cloudstack_Test_93_3

Test Case Name: testRegisterExistingName(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); - when(cmd.getUserData()).thenReturn("testUserdata"); - when(cmd.getName()).thenReturn("testName"); + RegisterUserDataCmd cmd = createMockRegisterUserDataCmd("testName", "testUserdata"); UserDataVO userData = Mockito.mock(UserDataVO.class); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(userData); spy.registerUserData(cmd); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testRegisterExistingName() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); PowerMockito.when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getName()).thenReturn("testName"); UserDataVO userData = Mockito.mock(UserDataVO.class); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(userData); spy.registerUserData(cmd); }
Reusable Method for MCI (click to expand)
private static RegisterUserDataCmd createMockRegisterUserDataCmd(String nameReturn, String userDataReturn) { RegisterUserDataCmd cmd = Mockito.mock(RegisterUserDataCmd.class); when(cmd.getName()).thenReturn(nameReturn); when(cmd.getUserData()).thenReturn(userDataReturn); return cmd; }

Mock Clone Instance #cloudstack_MCI_94

Reusable Method

private static UserVm createMockUserVmWithId(long id) { UserVm userVm = mock(UserVm.class); lenient().when(userVm.getId()).thenReturn(id); return userVm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_94_1

Test Case Name: testApplyUserDataInNetworkWithoutElement(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerTest.java)

Mock Object Variable Name: userVm

Suggested Diff
--- original +++ refactored @@ public void testApplyUserDataInNetworkWithoutElement() throws Exception { - UserVm userVm = mock(UserVm.class); - lenient().when(userVm.getId()).thenReturn(1L); + UserVm userVm = createMockUserVmWithId(1L); when(_nicMock.getNetworkId()).thenReturn(2L); when(_networkMock.getNetworkOfferingId()).thenReturn(3L); when(_networkDao.findById(2L)).thenReturn(_networkMock); UserDataServiceProvider userDataServiceProvider = mock(UserDataServiceProvider.class); lenient().when(userDataServiceProvider.saveUserData(any(Network.class), any(NicProfile.class), any(VirtualMachineProfile.class))).thenReturn(true); // Userdata support, but no implementing element when(_networkModel.areServicesSupportedByNetworkOffering(3L, Service.UserData)).thenReturn(true); _userVmMgr.applyUserData(HypervisorType.KVM, userVm, _nicMock); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testApplyUserDataInNetworkWithoutElement() throws Exception { UserVm userVm = mock(UserVm.class); lenient().when(userVm.getId()).thenReturn(1L); when(_nicMock.getNetworkId()).thenReturn(2L); when(_networkMock.getNetworkOfferingId()).thenReturn(3L); when(_networkDao.findById(2L)).thenReturn(_networkMock); UserDataServiceProvider userDataServiceProvider = mock(UserDataServiceProvider.class); lenient().when(userDataServiceProvider.saveUserData(any(Network.class), any(NicProfile.class), any(VirtualMachineProfile.class))).thenReturn(true); // Userdata support, but no implementing element when(_networkModel.areServicesSupportedByNetworkOffering(3L, Service.UserData)).thenReturn(true); _userVmMgr.applyUserData(HypervisorType.KVM, userVm, _nicMock); }
Reusable Method for MCI (click to expand)
private static UserVm createMockUserVmWithId(long id) { UserVm userVm = mock(UserVm.class); lenient().when(userVm.getId()).thenReturn(id); return userVm; }

Test Case ID #cloudstack_Test_94_2

Test Case Name: testApplyUserDataSuccessful(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerTest.java)

Mock Object Variable Name: userVm

Suggested Diff
--- original +++ refactored @@ @Test public void testApplyUserDataSuccessful() throws Exception { - UserVm userVm = mock(UserVm.class); - lenient().when(userVm.getId()).thenReturn(1L); + UserVm userVm = createMockUserVmWithId(1L); when(_nicMock.getNetworkId()).thenReturn(2L); when(_networkMock.getNetworkOfferingId()).thenReturn(3L); when(_networkDao.findById(2L)).thenReturn(_networkMock); UserDataServiceProvider userDataServiceProvider = mock(UserDataServiceProvider.class); when(userDataServiceProvider.saveUserData(any(Network.class), any(NicProfile.class), any(VirtualMachineProfile.class))).thenReturn(true); // Userdata support with implementing element when(_networkModel.areServicesSupportedByNetworkOffering(3L, Service.UserData)).thenReturn(true); when(_networkModel.getUserDataUpdateProvider(_networkMock)).thenReturn(userDataServiceProvider); assertTrue(_userVmMgr.applyUserData(HypervisorType.KVM, userVm, _nicMock)); } @@
Original Test Code (click to expand)
@Test public void testApplyUserDataSuccessful() throws Exception { UserVm userVm = mock(UserVm.class); lenient().when(userVm.getId()).thenReturn(1L); when(_nicMock.getNetworkId()).thenReturn(2L); when(_networkMock.getNetworkOfferingId()).thenReturn(3L); when(_networkDao.findById(2L)).thenReturn(_networkMock); UserDataServiceProvider userDataServiceProvider = mock(UserDataServiceProvider.class); when(userDataServiceProvider.saveUserData(any(Network.class), any(NicProfile.class), any(VirtualMachineProfile.class))).thenReturn(true); // Userdata support with implementing element when(_networkModel.areServicesSupportedByNetworkOffering(3L, Service.UserData)).thenReturn(true); when(_networkModel.getUserDataUpdateProvider(_networkMock)).thenReturn(userDataServiceProvider); assertTrue(_userVmMgr.applyUserData(HypervisorType.KVM, userVm, _nicMock)); }
Reusable Method for MCI (click to expand)
private static UserVm createMockUserVmWithId(long id) { UserVm userVm = mock(UserVm.class); lenient().when(userVm.getId()).thenReturn(id); return userVm; }

Mock Clone Instance #cloudstack_MCI_95

Reusable Method

// === Declare in class scope === private UserVm userVm; // === Add to @BeforeEach method === @BeforeEach public void setUp() { userVm = mock(UserVm.class); } // === Replace local variable in test with === userVm

The refactoring details in each test cases


Test Case ID #cloudstack_Test_95_1

Test Case Name: applyPFRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: userVm

Suggested Diff
@@ @Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - UserVm userVm = mock(UserVm.class); + // removed local mock; replaced with global field `userVm` Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); - when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); + when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private UserVm userVm; // === Add to @BeforeEach method === @BeforeEach public void setUp() { userVm = mock(UserVm.class); } // === Replace local variable in test with === userVm

Test Case ID #cloudstack_Test_95_2

Test Case Name: applyPFRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: userVm

Suggested Diff
@@ @Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - UserVm userVm = mock(UserVm.class); + // removed local mock; replaced with global field `userVm` Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); - when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); + when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private UserVm userVm; // === Add to @BeforeEach method === @BeforeEach public void setUp() { userVm = mock(UserVm.class); } // === Replace local variable in test with === userVm

Test Case ID #cloudstack_Test_95_3

Test Case Name: applyPFRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: userVm

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - UserVm userVm = mock(UserVm.class); + // removed local mock; replaced with global field `userVm` Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); - when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); + when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private UserVm userVm; // === Add to @BeforeEach method === @BeforeEach public void setUp() { userVm = mock(UserVm.class); } // === Replace local variable in test with === userVm

Test Case ID #cloudstack_Test_95_4

Test Case Name: applyPFRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: userVm

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - UserVm userVm = mock(UserVm.class); + // removed local mock; replaced with global field `userVm` Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); - when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); + when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private UserVm userVm; // === Add to @BeforeEach method === @BeforeEach public void setUp() { userVm = mock(UserVm.class); } // === Replace local variable in test with === userVm

Mock Clone Instance #cloudstack_MCI_96

Reusable Method

private static LoadBalancingRule createMockLoadBalancingRule(String algorithmReturn, int defaultPortStartReturn, long idReturn, Ip sourceIpReturn, int sourcePortStartReturn, FirewallRule.State stateReturn, List<LoadBalancingRule.LbStickinessPolicy> stickinessPoliciesReturn) { LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); when(loadBalancingRule.getAlgorithm()).thenReturn(algorithmReturn); when(loadBalancingRule.getDefaultPortStart()).thenReturn(defaultPortStartReturn); when(loadBalancingRule.getId()).thenReturn(idReturn); when(loadBalancingRule.getSourceIp()).thenReturn(sourceIpReturn); when(loadBalancingRule.getSourcePortStart()).thenReturn(sourcePortStartReturn); when(loadBalancingRule.getState()).thenReturn(stateReturn); when(loadBalancingRule.getStickinessPolicies()).thenReturn(stickinessPoliciesReturn); return loadBalancingRule; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_96_1

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: loadBalancingRule1

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); - LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); + LoadBalancingRule loadBalancingRule1 = createMockLoadBalancingRule( + "roundrobin", + 443, + 1L, + ip, + 443, + FirewallRule.State.Add, + lbStickinessPolicyList + ); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); - when(loadBalancingRule1.getId()).thenReturn(1L); - when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); - when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); - when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); - when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); - when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); - when(loadBalancingRule1.getSourceIp()).thenReturn(ip); + when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); + when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
private static LoadBalancingRule createMockLoadBalancingRule(String algorithmReturn, int defaultPortStartReturn, long idReturn, Ip sourceIpReturn, int sourcePortStartReturn, FirewallRule.State stateReturn, List<LoadBalancingRule.LbStickinessPolicy> stickinessPoliciesReturn) { LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); when(loadBalancingRule.getAlgorithm()).thenReturn(algorithmReturn); when(loadBalancingRule.getDefaultPortStart()).thenReturn(defaultPortStartReturn); when(loadBalancingRule.getId()).thenReturn(idReturn); when(loadBalancingRule.getSourceIp()).thenReturn(sourceIpReturn); when(loadBalancingRule.getSourcePortStart()).thenReturn(sourcePortStartReturn); when(loadBalancingRule.getState()).thenReturn(stateReturn); when(loadBalancingRule.getStickinessPolicies()).thenReturn(stickinessPoliciesReturn); return loadBalancingRule; }

Test Case ID #cloudstack_Test_96_2

Test Case Name: applyLBRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: loadBalancingRule1

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); - LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); + LoadBalancingRule loadBalancingRule1 = createMockLoadBalancingRule( + "roundrobin", + 443, + 1L, + ip, + 80, + FirewallRule.State.Add, + lbStickinessPolicyList + ); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); - when(loadBalancingRule1.getId()).thenReturn(1L); - when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); - when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); - when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); - when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); - when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); - when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
private static LoadBalancingRule createMockLoadBalancingRule(String algorithmReturn, int defaultPortStartReturn, long idReturn, Ip sourceIpReturn, int sourcePortStartReturn, FirewallRule.State stateReturn, List<LoadBalancingRule.LbStickinessPolicy> stickinessPoliciesReturn) { LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); when(loadBalancingRule.getAlgorithm()).thenReturn(algorithmReturn); when(loadBalancingRule.getDefaultPortStart()).thenReturn(defaultPortStartReturn); when(loadBalancingRule.getId()).thenReturn(idReturn); when(loadBalancingRule.getSourceIp()).thenReturn(sourceIpReturn); when(loadBalancingRule.getSourcePortStart()).thenReturn(sourcePortStartReturn); when(loadBalancingRule.getState()).thenReturn(stateReturn); when(loadBalancingRule.getStickinessPolicies()).thenReturn(stickinessPoliciesReturn); return loadBalancingRule; }

Mock Clone Instance #cloudstack_MCI_97

Reusable Method

private static LoadBalancingRule createMockLoadBalancingRule(Ip sourceIp, FirewallRule.State state) { LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); when(loadBalancingRule.getSourceIp()).thenReturn(sourceIp); when(loadBalancingRule.getState()).thenReturn(state); return loadBalancingRule; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_97_1

Test Case Name: applyLBRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: loadBalancingRule1

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); + LoadBalancingRule loadBalancingRule1 = createMockLoadBalancingRule(ip1, FirewallRule.State.Revoke); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); - when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); - when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
private static LoadBalancingRule createMockLoadBalancingRule(Ip sourceIp, FirewallRule.State state) { LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); when(loadBalancingRule.getSourceIp()).thenReturn(sourceIp); when(loadBalancingRule.getState()).thenReturn(state); return loadBalancingRule; }

Test Case ID #cloudstack_Test_97_2

Test Case Name: applyLBRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: loadBalancingRule

Suggested Diff
--- original +++ refactored @@ Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); - LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); + LoadBalancingRule loadBalancingRule = createMockLoadBalancingRule(ip, FirewallRule.State.Revoke); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); - when(loadBalancingRule.getSourceIp()).thenReturn(ip); - when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Reusable Method for MCI (click to expand)
private static LoadBalancingRule createMockLoadBalancingRule(Ip sourceIp, FirewallRule.State state) { LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); when(loadBalancingRule.getSourceIp()).thenReturn(sourceIp); when(loadBalancingRule.getState()).thenReturn(state); return loadBalancingRule; }

Mock Clone Instance #cloudstack_MCI_98

Reusable Method

private static NicTO createMockNicTO(Networks.TrafficType trafficType) { NicTO nicTO = Mockito.mock(NicTO.class); when(nicTO.getType()).thenReturn(trafficType); return nicTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_98_1

Test Case Name: testPrepareForMigrationCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nicTO

Suggested Diff
--- original +++ refactored @@ final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); - final NicTO nicTO = Mockito.mock(NicTO.class); + final NicTO nicTO = createMockNicTO(TrafficType.Guest); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); - when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); @@
Original Test Code (click to expand)
@Test public void testPrepareForMigrationCommand() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(Networks.TrafficType trafficType) { NicTO nicTO = Mockito.mock(NicTO.class); when(nicTO.getType()).thenReturn(trafficType); return nicTO; }

Test Case ID #cloudstack_Test_98_2

Test Case Name: testPrepareForMigrationCommandMigration(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nicTO

Suggested Diff
--- original +++ refactored @@ final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); - final NicTO nicTO = Mockito.mock(NicTO.class); + final NicTO nicTO = createMockNicTO(TrafficType.Guest); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); - when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); when(storagePoolManager.connectPhysicalDisksViaVmSpec(vm)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); @@
Original Test Code (click to expand)
@Test public void testPrepareForMigrationCommandMigration() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); when(storagePoolManager.connectPhysicalDisksViaVmSpec(vm)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(Networks.TrafficType trafficType) { NicTO nicTO = Mockito.mock(NicTO.class); when(nicTO.getType()).thenReturn(trafficType); return nicTO; }

Test Case ID #cloudstack_Test_98_3

Test Case Name: testPrepareForMigrationCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nicTO

Suggested Diff
--- original +++ refactored @@ final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); - final NicTO nicTO = Mockito.mock(NicTO.class); + final NicTO nicTO = createMockNicTO(TrafficType.Guest); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); - when(nicTO.getType()).thenReturn(TrafficType.Guest); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPrepareForMigrationCommandLibvirtException() { final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(Networks.TrafficType trafficType) { NicTO nicTO = Mockito.mock(NicTO.class); when(nicTO.getType()).thenReturn(trafficType); return nicTO; }

Test Case ID #cloudstack_Test_98_4

Test Case Name: testPrepareForMigrationCommandURISyntaxException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nicTO

Suggested Diff
--- original +++ refactored @@ final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); - final NicTO nicTO = Mockito.mock(NicTO.class); + final NicTO nicTO = createMockNicTO(TrafficType.Guest); final DiskTO volume = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { volume }); - when(nicTO.getType()).thenReturn(TrafficType.Guest); when(volume.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenThrow(URISyntaxException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(volume, times(1)).getType(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPrepareForMigrationCommandURISyntaxException() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { volume }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(volume.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenThrow(URISyntaxException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(volume, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(Networks.TrafficType trafficType) { NicTO nicTO = Mockito.mock(NicTO.class); when(nicTO.getType()).thenReturn(trafficType); return nicTO; }

Test Case ID #cloudstack_Test_98_5

Test Case Name: testPrepareForMigrationCommandInternalErrorException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nicTO

Suggested Diff
@@ final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); - final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } + final NicTO nicTO = createMockNicTO(TrafficType.Guest); when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); - when(nicTO.getType()).thenReturn(TrafficType.Guest); BDDMockito.given(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).willAnswer(invocationOnMock -> { throw new InternalErrorException("Exception Occurred"); }); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenReturn("/path"); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); }
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPrepareForMigrationCommandInternalErrorException() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); BDDMockito.given(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).willAnswer(invocationOnMock -> { throw new InternalErrorException("Exception Occurred"); }); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenReturn("/path"); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(Networks.TrafficType trafficType) { NicTO nicTO = Mockito.mock(NicTO.class); when(nicTO.getType()).thenReturn(trafficType); return nicTO; }

Mock Clone Instance #cloudstack_MCI_99

Reusable Method

private static NicTO createMockNicTO(String macReturn) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(macReturn); return nic; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_99_1

Test Case Name: testPlugNicCommandMatchMack(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
--- original +++ refactored @@ @Test public void testPlugNicCommandMatchMack() { - final NicTO nic = Mockito.mock(NicTO.class); + final NicTO nic = createMockNicTO("00:00:00:00"); final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); - when(nic.getMac()).thenReturn("00:00:00:00"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); } catch (final LibvirtException e) { fail(e.getMessage()); } } @@
Original Test Code (click to expand)
@Test public void testPlugNicCommandMatchMack() { final NicTO nic = Mockito.mock(NicTO.class); final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); when(nic.getMac()).thenReturn("00:00:00:00"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(String macReturn) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(macReturn); return nic; }

Test Case ID #cloudstack_Test_99_2

Test Case Name: testPlugNicCommandNoMatchMack(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
--- original +++ refactored @@ - final NicTO nic = Mockito.mock(NicTO.class); + final NicTO nic = createMockNicTO("00:00:00:01"); final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final InterfaceDef interfaceDef = Mockito.mock(InterfaceDef.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); - when(nic.getMac()).thenReturn("00:00:00:01"); when(nic.getName()).thenReturn("br0"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); when(libvirtComputingResourceMock.getVifDriver(nic.getType(), nic.getName())).thenReturn(vifDriver); when(vifDriver.plug(nic, "Other PV", "", null)).thenReturn(interfaceDef); when(interfaceDef.toString()).thenReturn("Interface"); final String interfaceDefStr = interfaceDef.toString(); doNothing().when(vm).attachDevice(interfaceDefStr); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); verify(libvirtComputingResourceMock, times(1)).getVifDriver(nic.getType(), nic.getName()); verify(vifDriver, times(1)).plug(nic, "Other PV", "", null); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } @@
Original Test Code (click to expand)
@Test public void testPlugNicCommandNoMatchMack() { final NicTO nic = Mockito.mock(NicTO.class); final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final InterfaceDef interfaceDef = Mockito.mock(InterfaceDef.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); when(nic.getMac()).thenReturn("00:00:00:01"); when(nic.getName()).thenReturn("br0"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); when(libvirtComputingResourceMock.getVifDriver(nic.getType(), nic.getName())).thenReturn(vifDriver); when(vifDriver.plug(nic, "Other PV", "", null)).thenReturn(interfaceDef); when(interfaceDef.toString()).thenReturn("Interface"); final String interfaceDefStr = interfaceDef.toString(); doNothing().when(vm).attachDevice(interfaceDefStr); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); verify(libvirtComputingResourceMock, times(1)).getVifDriver(nic.getType(), nic.getName()); verify(vifDriver, times(1)).plug(nic, "Other PV", "", null); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(String macReturn) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(macReturn); return nic; }

Test Case ID #cloudstack_Test_99_3

Test Case Name: testPlugNicCommandInternalError(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testPlugNicCommandInternalError() { - final NicTO nic = Mockito.mock(NicTO.class); + final NicTO nic = createMockNicTO("00:00:00:01"); final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); - when(nic.getMac()).thenReturn("00:00:00:01"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); when(libvirtComputingResourceMock.getVifDriver(nic.getType(), nic.getName())).thenReturn(vifDriver); when(vifDriver.plug(nic, "Other PV", "", null)).thenThrow(InternalErrorException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); verify(libvirtComputingResourceMock, times(1)).getVifDriver(nic.getType(), nic.getName()); verify(vifDriver, times(1)).plug(nic, "Other PV", "", null); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } } @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPlugNicCommandInternalError() { final NicTO nic = Mockito.mock(NicTO.class); final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); when(nic.getMac()).thenReturn("00:00:00:01"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); when(libvirtComputingResourceMock.getVifDriver(nic.getType(), nic.getName())).thenReturn(vifDriver); when(vifDriver.plug(nic, "Other PV", "", null)).thenThrow(InternalErrorException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); verify(libvirtComputingResourceMock, times(1)).getVifDriver(nic.getType(), nic.getName()); verify(vifDriver, times(1)).plug(nic, "Other PV", "", null); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(String macReturn) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(macReturn); return nic; }

Test Case ID #cloudstack_Test_99_4

Test Case Name: testUnPlugNicCommandMatchMack(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
--- original +++ refactored @@ - final NicTO nic = Mockito.mock(NicTO.class); + final NicTO nic = createMockNicTO("00:00:00:00"); final String instanceName = "Test"; final UnPlugNicCommand command = new UnPlugNicCommand(nic, instanceName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final InterfaceDef interfaceDef = Mockito.mock(InterfaceDef.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final List<VifDriver> drivers = new ArrayList<VifDriver>(); drivers.add(vifDriver); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); - when(nic.getMac()).thenReturn("00:00:00:00"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); when(interfaceDef.toString()).thenReturn("Interface"); final String interfaceDefStr = interfaceDef.toString(); doNothing().when(vm).detachDevice(interfaceDefStr); when(libvirtComputingResourceMock.getAllVifDrivers()).thenReturn(drivers); doNothing().when(vifDriver).unplug(intDef, true); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); verify(libvirtComputingResourceMock, times(1)).getAllVifDrivers(); } catch (final LibvirtException e) { fail(e.getMessage()); } @@
Original Test Code (click to expand)
@Test public void testUnPlugNicCommandMatchMack() { final NicTO nic = Mockito.mock(NicTO.class); final String instanceName = "Test"; final UnPlugNicCommand command = new UnPlugNicCommand(nic, instanceName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final InterfaceDef interfaceDef = Mockito.mock(InterfaceDef.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final InterfaceDef intDef = Mockito.mock(InterfaceDef.class); nics.add(intDef); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final List<VifDriver> drivers = new ArrayList<VifDriver>(); drivers.add(vifDriver); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); when(intDef.getDevName()).thenReturn("eth0"); when(intDef.getBrName()).thenReturn("br0"); when(intDef.getMacAddress()).thenReturn("00:00:00:00"); when(nic.getMac()).thenReturn("00:00:00:00"); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); when(interfaceDef.toString()).thenReturn("Interface"); final String interfaceDefStr = interfaceDef.toString(); doNothing().when(vm).detachDevice(interfaceDefStr); when(libvirtComputingResourceMock.getAllVifDrivers()).thenReturn(drivers); doNothing().when(vifDriver).unplug(intDef, true); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); verify(libvirtComputingResourceMock, times(1)).getAllVifDrivers(); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(String macReturn) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(macReturn); return nic; }

Mock Clone Instance #cloudstack_MCI_100

Reusable Method

// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_100_1

Test Case Name: testPlugNicCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testPlugNicCommandLibvirtException() { - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPlugNicCommandLibvirtException() { final NicTO nic = Mockito.mock(NicTO.class); final String instanceName = "Test"; final Type vmtype = Type.DomainRouter; final PlugNicCommand command = new PlugNicCommand(nic, instanceName, vmtype); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_2

Test Case Name: testUnPlugNicCommandNoNics(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void testUnPlugNicCommandNoNics() { - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final String instanceName = "Test"; final UnPlugNicCommand command = new UnPlugNicCommand(nic, instanceName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
Original Test Code (click to expand)
@Test public void testUnPlugNicCommandNoNics() { final NicTO nic = Mockito.mock(NicTO.class); final String instanceName = "Test"; final UnPlugNicCommand command = new UnPlugNicCommand(nic, instanceName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final Domain vm = Mockito.mock(Domain.class); final List<InterfaceDef> nics = new ArrayList<InterfaceDef>(); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final List<VifDriver> drivers = new ArrayList<VifDriver>(); drivers.add(vifDriver); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtComputingResourceMock.getInterfaces(conn, command.getVmName())).thenReturn(nics); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, instanceName)).thenReturn(vm); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); verify(libvirtComputingResourceMock, times(1)).getDomain(conn, instanceName); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_3

Test Case Name: testUnPlugNicCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testUnPlugNicCommandLibvirtException() { - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final String instanceName = "Test"; final UnPlugNicCommand command = new UnPlugNicCommand(nic, instanceName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testUnPlugNicCommandLibvirtException() { final NicTO nic = Mockito.mock(NicTO.class); final String instanceName = "Test"; final UnPlugNicCommand command = new UnPlugNicCommand(nic, instanceName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_4

Test Case Name: testStartCommandFailedConnect(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; @@
Original Test Code (click to expand)
@Test public void testStartCommandFailedConnect() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_5

Test Case Name: testStartCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr);
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testStartCommandLibvirtException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_6

Test Case Name: testStartCommandInternalError(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void testStartCommandInternalError() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(InternalErrorException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Original Test Code (click to expand)
@Test public void testStartCommandInternalError() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(InternalErrorException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_7

Test Case Name: testStartCommandUriException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; @@
Original Test Code (click to expand)
@Test public void testStartCommandUriException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(URISyntaxException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_8

Test Case Name: testStartCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); try { doNothing().when(libvirtComputingResourceMock).createVifs(vmSpec, vmDef); when(libvirtComputingResourceMock.startVM(conn, vmName, vmDef.toString())).thenReturn("SUCCESS"); when(vmSpec.getBootArgs()).thenReturn("ls -lart"); when(libvirtComputingResourceMock.passCmdLine(vmName, vmSpec.getBootArgs())).thenReturn(true); - when(nic.getIp()).thenReturn(controlIp); + when(nic.getIp()).thenReturn(controlIp); - when(nic.getType()).thenReturn(TrafficType.Control); + when(nic.getType()).thenReturn(TrafficType.Control); when(libvirtComputingResourceMock.getVirtRouterResource()).thenReturn(virtRouterResource); when(virtRouterResource.connect(controlIp, 1, 5000)).thenReturn(true); when(virtRouterResource.isSystemVMSetup(vmName, controlIp)).thenReturn(true); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Original Test Code (click to expand)
@Test public void testStartCommand() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); try { doNothing().when(libvirtComputingResourceMock).createVifs(vmSpec, vmDef); when(libvirtComputingResourceMock.startVM(conn, vmName, vmDef.toString())).thenReturn("SUCCESS"); when(vmSpec.getBootArgs()).thenReturn("ls -lart"); when(libvirtComputingResourceMock.passCmdLine(vmName, vmSpec.getBootArgs())).thenReturn(true); when(nic.getIp()).thenReturn(controlIp); when(nic.getType()).thenReturn(TrafficType.Control); when(libvirtComputingResourceMock.getVirtRouterResource()).thenReturn(virtRouterResource); when(virtRouterResource.connect(controlIp, 1, 5000)).thenReturn(true); when(virtRouterResource.isSystemVMSetup(vmName, controlIp)).thenReturn(true); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_9

Test Case Name: testStartCommandIsolationEc2(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; @@
Original Test Code (click to expand)
@Test public void testStartCommandIsolationEc2() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); try { doNothing().when(libvirtComputingResourceMock).createVifs(vmSpec, vmDef); when(libvirtComputingResourceMock.startVM(conn, vmName, vmDef.toString())).thenReturn("SUCCESS"); when(nic.isSecurityGroupEnabled()).thenReturn(true); when(nic.getIsolationUri()).thenReturn(new URI("ec2://test")); when(vmSpec.getBootArgs()).thenReturn("ls -lart"); when(libvirtComputingResourceMock.passCmdLine(vmName, vmSpec.getBootArgs())).thenReturn(true); when(nic.getIp()).thenReturn(controlIp); when(nic.getType()).thenReturn(TrafficType.Control); when(libvirtComputingResourceMock.getVirtRouterResource()).thenReturn(virtRouterResource); when(virtRouterResource.connect(controlIp, 1, 5000)).thenReturn(true); when(virtRouterResource.isSystemVMSetup(vmName, controlIp)).thenReturn(true); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_100_10

Test Case Name: testStartCommandHostMemory(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); - final NicTO nic = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nic` final NicTO[] nics = new NicTO[] { nic }; int vmId = 1; final int[] vms = new int[] { vmId };
Original Test Code (click to expand)
@Test public void testStartCommandHostMemory() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; int vmId = 1; final int[] vms = new int[] { vmId }; final Domain dm = Mockito.mock(Domain.class); final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.User); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getMaxRam()).thenReturn(512L); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); when(conn.domainLookupByID(vmId)).thenReturn(dm); when(dm.getMaxMemory()).thenReturn(1024L); when(dm.getName()).thenReturn(vmName); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nic;

Mock Clone Instance #cloudstack_MCI_101

Reusable Method

private static NicTO createMockNicTO(String mac) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(mac); return nic; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_101_1

Test Case Name: testMigrateWithStorageSendCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nic1

Suggested Diff
--- original +++ refactored @@ final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); - final NicTO nic1 = Mockito.mock(NicTO.class); + final NicTO nic1 = createMockNicTO(mac); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); - when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommand() { final String vmName = "small"; final String path = "/"; final String mac = "3c:15:c2:c4:4f:18"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getVifByMac(conn, null, nic1.getMac())).thenReturn(vif1); when(xenServer610Resource.getVifByMac(conn, null, nic2.getMac())).thenReturn(vif2); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(2)).getVDIbyUuid(conn, volume1.getPath()); verify(xenServer610Resource, times(2)).getVifByMac(conn, null, nic1.getMac()); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(String mac) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(mac); return nic; }

Test Case ID #cloudstack_Test_101_2

Test Case Name: testMigrateWithStorageSendCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nic2

Suggested Diff
--- original +++ refactored @@ final NicTO nic1 = Mockito.mock(NicTO.class); - final NicTO nic2 = Mockito.mock(NicTO.class); + final NicTO nic2 = createMockNicTO(mac); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); - when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getVifByMac(conn, null, nic1.getMac())).thenReturn(vif1); when(xenServer610Resource.getVifByMac(conn, null, nic2.getMac())).thenReturn(vif2); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(2)).getVDIbyUuid(conn, volume1.getPath()); verify(xenServer610Resource, times(2)).getVifByMac(conn, null, nic1.getMac()); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommand() { final String vmName = "small"; final String path = "/"; final String mac = "3c:15:c2:c4:4f:18"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getVifByMac(conn, null, nic1.getMac())).thenReturn(vif1); when(xenServer610Resource.getVifByMac(conn, null, nic2.getMac())).thenReturn(vif2); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(2)).getVDIbyUuid(conn, volume1.getPath()); verify(xenServer610Resource, times(2)).getVifByMac(conn, null, nic1.getMac()); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static NicTO createMockNicTO(String mac) { NicTO nic = Mockito.mock(NicTO.class); when(nic.getMac()).thenReturn(mac); return nic; }

Mock Clone Instance #cloudstack_MCI_102

Reusable Method

// === Declare in class scope === private NicTO nicTO1; private NicTO nicTO2; private NicTO nicTO3; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO1 = mock(NicTO.class); nicTO2 = mock(NicTO.class); nicTO3 = mock(NicTO.class); } // === Replace local variable in test with === nicTO1; nicTO2; nicTO3;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_102_1

Test Case Name: testMigrateWithStorageCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nicTO1

Suggested Diff
@@ final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); - final NicTO nicTO1 = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nicTO1 nicTO2 nicTO3` final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); @@ verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); - verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); + verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1 nicTO2 nicTO3); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null);
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nicTO1; private NicTO nicTO2; private NicTO nicTO3; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO1 = mock(NicTO.class); nicTO2 = mock(NicTO.class); nicTO3 = mock(NicTO.class); } // === Replace local variable in test with === nicTO1; nicTO2; nicTO3;

Test Case ID #cloudstack_Test_102_2

Test Case Name: testMigrateWithStorageReceiveCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nicTO1

Suggested Diff
@@ final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); - final NicTO nicTO1 = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nicTO1 nicTO2 nicTO3` final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); @@ try { - when(xenServer610Resource.getNetwork(conn, nicTO1)).thenReturn(nw1); + when(xenServer610Resource.getNetwork(conn, nicTO1 nicTO2 nicTO3)).thenReturn(nw1); when(xenServer610Resource.getNetwork(conn, nicTO2)).thenReturn(nw2); when(xenServer610Resource.getNetwork(conn, nicTO3)).thenReturn(nw3); when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(network); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { - verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); + verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1 nicTO2 nicTO3); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testMigrateWithStorageReceiveCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network network = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Network nw1 = Mockito.mock(Network.class); final Network nw2 = Mockito.mock(Network.class); final Network nw3 = Mockito.mock(Network.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final MigrateWithStorageReceiveCommand migrateStorageCommand = new MigrateWithStorageReceiveCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); try { when(xenServer610Resource.getNetwork(conn, nicTO1)).thenReturn(nw1); when(xenServer610Resource.getNetwork(conn, nicTO2)).thenReturn(nw2); when(xenServer610Resource.getNetwork(conn, nicTO3)).thenReturn(nw3); when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(network); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nicTO1; private NicTO nicTO2; private NicTO nicTO3; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO1 = mock(NicTO.class); nicTO2 = mock(NicTO.class); nicTO3 = mock(NicTO.class); } // === Replace local variable in test with === nicTO1; nicTO2; nicTO3;

Test Case ID #cloudstack_Test_102_3

Test Case Name: testMigrateWithStorageSendCommandNetException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nic1

Suggested Diff
@@ + // Cannot refactor mock `nic1`: ambiguous mapping for new variable name
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommandNetException() { final String vmName = "small"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); Gson gson = new Gson(); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, new String("a"))); nicToNetwork.add(new Pair<NicTO, Object>(nic2, new String("b"))); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nicTO1; private NicTO nicTO2; private NicTO nicTO3; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO1 = mock(NicTO.class); nicTO2 = mock(NicTO.class); nicTO3 = mock(NicTO.class); } // === Replace local variable in test with === nicTO1; nicTO2; nicTO3;

Mock Clone Instance #cloudstack_MCI_103

Reusable Method

// === Declare in class scope === private NicTO nicTO2; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO2 = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nicTO2;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_103_1

Test Case Name: testMigrateWithStorageCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nicTO2

Suggested Diff
@@ final NicTO nicTO1 = Mockito.mock(NicTO.class); - final NicTO nicTO2 = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nicTO2` final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; @@ verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); - verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); + verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3);
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nicTO2; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO2 = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nicTO2;

Test Case ID #cloudstack_Test_103_2

Test Case Name: testMigrateWithStorageReceiveCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nicTO2

Suggested Diff
@@ final NicTO nicTO1 = Mockito.mock(NicTO.class); - final NicTO nicTO2 = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nicTO2` final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageReceiveCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network network = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Network nw1 = Mockito.mock(Network.class); final Network nw2 = Mockito.mock(Network.class); final Network nw3 = Mockito.mock(Network.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final MigrateWithStorageReceiveCommand migrateStorageCommand = new MigrateWithStorageReceiveCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); try { when(xenServer610Resource.getNetwork(conn, nicTO1)).thenReturn(nw1); when(xenServer610Resource.getNetwork(conn, nicTO2)).thenReturn(nw2); when(xenServer610Resource.getNetwork(conn, nicTO3)).thenReturn(nw3); when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(network); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nicTO2; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO2 = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nicTO2;

Test Case ID #cloudstack_Test_103_3

Test Case Name: testMigrateWithStorageSendCommandNetException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: nic2

Suggested Diff
@@ final NicTO nic1 = Mockito.mock(NicTO.class); - final NicTO nic2 = Mockito.mock(NicTO.class); + // removed local mock; replaced with global field `nicTO2` Gson gson = new Gson(); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, new String("a"))); - nicToNetwork.add(new Pair<NicTO, Object>(nic2, new String("b"))); + nicToNetwork.add(new Pair<NicTO, Object>(nicTO2, new String("b"))); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token);
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommandNetException() { final String vmName = "small"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); Gson gson = new Gson(); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, new String("a"))); nicToNetwork.add(new Pair<NicTO, Object>(nic2, new String("b"))); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private NicTO nicTO2; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nicTO2 = Mockito.mock(NicTO.class); } // === Replace local variable in test with === nicTO2;

Mock Clone Instance #cloudstack_MCI_104

Reusable Method

public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_104_1

Test Case Name: removePublicNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
@@ when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); assertTrue(tungstenService.removePublicNetworkSubnet(vlanVO)); verify(ipAddressDao, times(1)).unassignIpAddress(anyLong());
Original Test Code (click to expand)
@Test public void removePublicNetworkSubnetTest() { VlanVO vlanVO = mock(VlanVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(removeTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); when(removeTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); assertTrue(tungstenService.removePublicNetworkSubnet(vlanVO)); verify(ipAddressDao, times(1)).unassignIpAddress(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_2

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); @@
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_3

Test Case Name: createSharedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); - when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); + when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); when(createTungstenSharedNetworkAnswer.getApiObjectBase()).thenReturn(apiObjectBase); when(apiObjectBase.getQualifiedName()).thenReturn(List.of("network")); when(tungstenProviderVO.getGateway()).thenReturn("192.168.100.1"); assertTrue(tungstenService.createSharedNetwork(network, vlan)); @@
Original Test Code (click to expand)
@Test public void createSharedNetworkTest() { Network network = mock(Network.class); Vlan vlan = mock(Vlan.class); AccountVO accountVO = mock(AccountVO.class); TungstenAnswer createTungstenSharedNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer addNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); HostVO hostVO = mock(HostVO.class); Answer answer = mock(Answer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); ApiObjectBase apiObjectBase = mock(ApiObjectBase.class); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenSharedNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(createTungstenSharedNetworkAnswer.getResult()).thenReturn(true); when(addNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getCidr()).thenReturn("192.168.100.0/24"); when(vlan.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlan.getVlanGateway()).thenReturn("192.168.100.1"); when(vlan.getIp6Gateway()).thenReturn("fd00::1"); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(anyString())).thenReturn(hostVO); when(agentMgr.easySend(anyLong(), any(SetupTungstenVRouterCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); when(vlan.getIp6Cidr()).thenReturn("fd00::1/64"); when(vlan.getIp6Range()).thenReturn("fd00::100-fd00::200"); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.1.150"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); when(createTungstenSharedNetworkAnswer.getApiObjectBase()).thenReturn(apiObjectBase); when(apiObjectBase.getQualifiedName()).thenReturn(List.of("network")); when(tungstenProviderVO.getGateway()).thenReturn("192.168.100.1"); assertTrue(tungstenService.createSharedNetwork(network, vlan)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_4

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- Original +++ Refactored @@ when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_5

Test Case Name: applyLBRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- original +++ refactored @@ when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip);
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_6

Test Case Name: applyLBRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- original +++ refactored @@ LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_7

Test Case Name: applyLBRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- Original +++ Refactored @@ when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); @@
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_8

Test Case Name: preparePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- original +++ refactored @@ TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); @@
Original Test Code (click to expand)
@Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_9

Test Case Name: releasePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- Original +++ Refactored @@ when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); @@
Original Test Code (click to expand)
@Test public void releasePublicNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_10

Test Case Name: testImplementGuestNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new LogicalRouter(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "192.168.1.100")); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); when(tungstenService.allocateDnsIpAddress(any(Network.class), any(), anyString())).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); @@
Original Test Code (click to expand)
@Test public void testImplementGuestNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(network)).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new LogicalRouter(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "192.168.1.100")); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenService.allocateDnsIpAddress(any(Network.class), any(), anyString())).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(SetTungstenNetworkGatewayCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Test Case ID #cloudstack_Test_104_11

Test Case Name: addPublicNetworkSubnetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: ipAddressDao

Suggested Diff
@@ when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); - when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); - when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); + ipAddressDao = MockIPAddressDao.createMockIpAddressDao(ipAddressVO); + when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); assertTrue(tungstenService.addPublicNetworkSubnet(vlanVO)); }
Original Test Code (click to expand)
@Test public void addPublicNetworkSubnetTest() { VlanVO vlanVO = mock(VlanVO.class); Network publicNetwork = mock(Network.class); TungstenAnswer addTungstenNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addTungstenNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.100.150"); when(vlanVO.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlanVO.getVlanGateway()).thenReturn("192.168.100.1"); when(vlanVO.getVlanNetmask()).thenReturn("255.255.255.0"); when(publicNetwork.getCidr()).thenReturn("192.168.100.0/24"); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(addTungstenNetworkSubnetAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(publicNetwork.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(createTungstenPolicyAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); assertTrue(tungstenService.addPublicNetworkSubnet(vlanVO)); }
Reusable Method for MCI (click to expand)
public class MockIPAddressDao { public static IPAddressDao createMockIpAddressDao(IPAddressVO ipAddressVO) { IPAddressDao ipAddressDao = mock(IPAddressDao.class); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); return ipAddressDao; } }

Mock Clone Instance #cloudstack_MCI_105

Reusable Method

private static RemoteAccessVpn createMockRemoteAccessVpn(Long vpcId) { RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class); when(remoteAccessVpn.getVpcId()).thenReturn(vpcId); return remoteAccessVpn; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_105_1

Test Case Name: testApplyVpnUsers(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\element\VpcVirtualRouterElementTest.java)

Mock Object Variable Name: remoteAccessVpn

Suggested Diff
--- original +++ refactored @@ final Vpc vpc = Mockito.mock(Vpc.class); final DataCenterVO dataCenterVO = Mockito.mock(DataCenterVO.class); - final RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class); final DomainRouterVO domainRouterVO1 = Mockito.mock(DomainRouterVO.class); final DomainRouterVO domainRouterVO2 = Mockito.mock(DomainRouterVO.class); final VpnUser vpnUser1 = Mockito.mock(VpnUser.class); final VpnUser vpnUser2 = Mockito.mock(VpnUser.class); final List<VpnUser> users = new ArrayList<VpnUser>(); users.add(vpnUser1); users.add(vpnUser2); final List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>(); routers.add(domainRouterVO1); routers.add(domainRouterVO2); final Long vpcId = new Long(1l); final Long zoneId = new Long(1l); + final RemoteAccessVpn remoteAccessVpn = createMockRemoteAccessVpn(vpcId); - when(remoteAccessVpn.getVpcId()).thenReturn(vpcId); when(_vpcRouterMgr.getVpcRouters(vpcId)).thenReturn(routers); when(_entityMgr.findById(Vpc.class, vpcId)).thenReturn(vpc); when(vpc.getZoneId()).thenReturn(zoneId); when(_dcDao.findById(zoneId)).thenReturn(dataCenterVO); when(networkTopologyContext.retrieveNetworkTopology(dataCenterVO)).thenReturn(advancedNetworkTopology); @@
Original Test Code (click to expand)
@Test public void testApplyVpnUsers() { vpcVirtualRouterElement._vpcRouterMgr = _vpcRouterMgr; final AdvancedNetworkTopology advancedNetworkTopology = Mockito.mock(AdvancedNetworkTopology.class); final BasicNetworkTopology basicNetworkTopology = Mockito.mock(BasicNetworkTopology.class); networkTopologyContext.setAdvancedNetworkTopology(advancedNetworkTopology); networkTopologyContext.setBasicNetworkTopology(basicNetworkTopology); networkTopologyContext.init(); final Vpc vpc = Mockito.mock(Vpc.class); final DataCenterVO dataCenterVO = Mockito.mock(DataCenterVO.class); final RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class); final DomainRouterVO domainRouterVO1 = Mockito.mock(DomainRouterVO.class); final DomainRouterVO domainRouterVO2 = Mockito.mock(DomainRouterVO.class); final VpnUser vpnUser1 = Mockito.mock(VpnUser.class); final VpnUser vpnUser2 = Mockito.mock(VpnUser.class); final List<VpnUser> users = new ArrayList<VpnUser>(); users.add(vpnUser1); users.add(vpnUser2); final List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>(); routers.add(domainRouterVO1); routers.add(domainRouterVO2); final Long vpcId = new Long(1l); final Long zoneId = new Long(1l); when(remoteAccessVpn.getVpcId()).thenReturn(vpcId); when(_vpcRouterMgr.getVpcRouters(vpcId)).thenReturn(routers); when(_entityMgr.findById(Vpc.class, vpcId)).thenReturn(vpc); when(vpc.getZoneId()).thenReturn(zoneId); when(_dcDao.findById(zoneId)).thenReturn(dataCenterVO); when(networkTopologyContext.retrieveNetworkTopology(dataCenterVO)).thenReturn(advancedNetworkTopology); try { when(advancedNetworkTopology.applyVpnUsers(remoteAccessVpn, users, domainRouterVO1)).thenReturn(new String[] { "user1", "user2" }); when(advancedNetworkTopology.applyVpnUsers(remoteAccessVpn, users, domainRouterVO2)).thenReturn(new String[] { "user3", "user4" }); } catch (final ResourceUnavailableException e) { fail(e.getMessage()); } try { final String[] results = vpcVirtualRouterElement.applyVpnUsers(remoteAccessVpn, users); assertNotNull(results); assertEquals(results[0], "user1"); assertEquals(results[1], "user2"); assertEquals(results[2], "user3"); assertEquals(results[3], "user4"); } catch (final ResourceUnavailableException e) { fail(e.getMessage()); } verify(remoteAccessVpn, times(1)).getVpcId(); verify(vpc, times(1)).getZoneId(); verify(_dcDao, times(1)).findById(zoneId); verify(networkTopologyContext, times(1)).retrieveNetworkTopology(dataCenterVO); }
Reusable Method for MCI (click to expand)
private static RemoteAccessVpn createMockRemoteAccessVpn(Long vpcId) { RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class); when(remoteAccessVpn.getVpcId()).thenReturn(vpcId); return remoteAccessVpn; }

Test Case ID #cloudstack_Test_105_2

Test Case Name: testApplyVpnUsersException2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\element\VpcVirtualRouterElementTest.java)

Mock Object Variable Name: remoteAccessVpn

Suggested Diff
--- original +++ refactored @@ networkTopologyContext.setBasicNetworkTopology(basicNetworkTopology); networkTopologyContext.init(); - final RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class); final List<VpnUser> users = new ArrayList<VpnUser>(); final Long vpcId = new Long(1l); - when(remoteAccessVpn.getVpcId()).thenReturn(vpcId); + final RemoteAccessVpn remoteAccessVpn = createMockRemoteAccessVpn(vpcId); when(_vpcRouterMgr.getVpcRouters(vpcId)).thenReturn(null); try { final String[] results = vpcVirtualRouterElement.applyVpnUsers(remoteAccessVpn, users); assertNull(results); } catch (final ResourceUnavailableException e) { fail(e.getMessage()); } verify(remoteAccessVpn, times(1)).getVpcId(); @@
Original Test Code (click to expand)
@Test public void testApplyVpnUsersException2() { vpcVirtualRouterElement._vpcRouterMgr = _vpcRouterMgr; final AdvancedNetworkTopology advancedNetworkTopology = Mockito.mock(AdvancedNetworkTopology.class); final BasicNetworkTopology basicNetworkTopology = Mockito.mock(BasicNetworkTopology.class); networkTopologyContext.setAdvancedNetworkTopology(advancedNetworkTopology); networkTopologyContext.setBasicNetworkTopology(basicNetworkTopology); networkTopologyContext.init(); final RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class); final List<VpnUser> users = new ArrayList<VpnUser>(); final Long vpcId = new Long(1l); when(remoteAccessVpn.getVpcId()).thenReturn(vpcId); when(_vpcRouterMgr.getVpcRouters(vpcId)).thenReturn(null); try { final String[] results = vpcVirtualRouterElement.applyVpnUsers(remoteAccessVpn, users); assertNull(results); } catch (final ResourceUnavailableException e) { fail(e.getMessage()); } verify(remoteAccessVpn, times(1)).getVpcId(); }
Reusable Method for MCI (click to expand)
private static RemoteAccessVpn createMockRemoteAccessVpn(Long vpcId) { RemoteAccessVpn remoteAccessVpn = Mockito.mock(RemoteAccessVpn.class); when(remoteAccessVpn.getVpcId()).thenReturn(vpcId); return remoteAccessVpn; }

Mock Clone Instance #cloudstack_MCI_106

Reusable Method

private static <T> GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> createMockGenericSearchBuilder(SearchCriteria<Long> searchCriteriaMock, AutoScalePolicyConditionMapVO autoScalePolicyConditionMapVOMock) { GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> searchBuilderMock = Mockito.mock(GenericSearchBuilder.class); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(searchBuilderMock.entity()).thenReturn(autoScalePolicyConditionMapVOMock); return searchBuilderMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_106_1

Test Case Name: testUpdateCondition(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: searchBuilderMock

Suggested Diff
--- original +++ refactored @@ public void testUpdateCondition() throws ResourceInUseException { - GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> searchBuilderMock = Mockito.mock(GenericSearchBuilder.class); SearchCriteria<Long> searchCriteriaMock = Mockito.mock(SearchCriteria.class); + GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> searchBuilderMock = createMockGenericSearchBuilder(searchCriteriaMock, autoScalePolicyConditionMapVOMock); Mockito.doReturn(searchBuilderMock).when(autoScalePolicyConditionMapDao).createSearchBuilder(any()); - when(searchBuilderMock.entity()).thenReturn(autoScalePolicyConditionMapVOMock); - Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); Mockito.doReturn(Arrays.asList()).when(autoScalePolicyConditionMapDao).customSearch(searchCriteriaMock, null); when(conditionDao.update(eq(conditionId), any())).thenReturn(true); UpdateConditionCmd cmd = new UpdateConditionCmd(); ReflectionTestUtils.setField(cmd, "id", conditionId); ReflectionTestUtils.setField(cmd, "relationalOperator", String.valueOf(relationalOperator)); ReflectionTestUtils.setField(cmd, "threshold", 100L); Condition condition = autoScaleManagerImplSpy.updateCondition(cmd); Assert.assertEquals(conditionMock, condition); Mockito.verify(conditionDao).update(eq(conditionId), Mockito.any()); @@
Original Test Code (click to expand)
@Test public void testUpdateCondition() throws ResourceInUseException { GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> searchBuilderMock = Mockito.mock(GenericSearchBuilder.class); SearchCriteria<Long> searchCriteriaMock = Mockito.mock(SearchCriteria.class); Mockito.doReturn(searchBuilderMock).when(autoScalePolicyConditionMapDao).createSearchBuilder(any()); when(searchBuilderMock.entity()).thenReturn(autoScalePolicyConditionMapVOMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); Mockito.doReturn(Arrays.asList()).when(autoScalePolicyConditionMapDao).customSearch(searchCriteriaMock, null); when(conditionDao.update(eq(conditionId), any())).thenReturn(true); UpdateConditionCmd cmd = new UpdateConditionCmd(); ReflectionTestUtils.setField(cmd, "id", conditionId); ReflectionTestUtils.setField(cmd, "relationalOperator", String.valueOf(relationalOperator)); ReflectionTestUtils.setField(cmd, "threshold", 100L); Condition condition = autoScaleManagerImplSpy.updateCondition(cmd); Assert.assertEquals(conditionMock, condition); Mockito.verify(conditionDao).update(eq(conditionId), Mockito.any()); }
Reusable Method for MCI (click to expand)
private static <T> GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> createMockGenericSearchBuilder(SearchCriteria<Long> searchCriteriaMock, AutoScalePolicyConditionMapVO autoScalePolicyConditionMapVOMock) { GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> searchBuilderMock = Mockito.mock(GenericSearchBuilder.class); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(searchBuilderMock.entity()).thenReturn(autoScalePolicyConditionMapVOMock); return searchBuilderMock; }

Test Case ID #cloudstack_Test_106_2

Test Case Name: testUpdateConditionWithPolicies(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: genericSearchBuilderMock

Suggested Diff
--- original +++ refactored @@ @Test(expected = ResourceInUseException.class) public void testUpdateConditionWithPolicies() throws ResourceInUseException { - GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> genericSearchBuilderMock = Mockito.mock(GenericSearchBuilder.class); SearchCriteria<Long> searchCriteriaLongMock = Mockito.mock(SearchCriteria.class); + GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> genericSearchBuilderMock = createMockGenericSearchBuilder(searchCriteriaLongMock, autoScalePolicyConditionMapVOMock); Mockito.doReturn(genericSearchBuilderMock).when(autoScalePolicyConditionMapDao).createSearchBuilder(Long.class); - when(genericSearchBuilderMock.entity()).thenReturn(autoScalePolicyConditionMapVOMock); - Mockito.doReturn(searchCriteriaLongMock).when(genericSearchBuilderMock).create(); Mockito.doReturn(Arrays.asList(scaleUpPolicyId)).when(autoScalePolicyConditionMapDao).customSearch(searchCriteriaLongMock, null); SearchBuilder<AutoScaleVmGroupPolicyMapVO> searchBuilderMock1 = Mockito.mock(SearchBuilder.class); Mockito.doReturn(searchBuilderMock1).when(autoScaleVmGroupPolicyMapDao).createSearchBuilder(); when(searchBuilderMock1.entity()).thenReturn(autoScaleVmGroupPolicyMapVOMock); SearchBuilder<AutoScaleVmGroupVO> searchBuilderMock2 = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScaleVmGroupVO> searchCriteriaMock2 = Mockito.mock(SearchCriteria.class); Mockito.doReturn(searchBuilderMock2).when(autoScaleVmGroupDao).createSearchBuilder(); when(searchBuilderMock2.entity()).thenReturn(asVmGroupMock); Mockito.doReturn(searchCriteriaMock2).when(searchBuilderMock2).create(); Mockito.doReturn(Arrays.asList(asVmGroupMock)).when(autoScaleVmGroupDao).search(searchCriteriaMock2, null); UpdateConditionCmd cmd = new UpdateConditionCmd(); ReflectionTestUtils.setField(cmd, "id", conditionId); ReflectionTestUtils.setField(cmd, "relationalOperator", String.valueOf(relationalOperator)); ReflectionTestUtils.setField(cmd, "threshold", 100L); Condition condition = autoScaleManagerImplSpy.updateCondition(cmd); Mockito.verify(conditionDao, never()).update(eq(conditionId), Mockito.any()); } @@
Original Test Code (click to expand)
@Test(expected = ResourceInUseException.class) public void testUpdateConditionWithPolicies() throws ResourceInUseException { GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> genericSearchBuilderMock = Mockito.mock(GenericSearchBuilder.class); SearchCriteria<Long> searchCriteriaLongMock = Mockito.mock(SearchCriteria.class); Mockito.doReturn(genericSearchBuilderMock).when(autoScalePolicyConditionMapDao).createSearchBuilder(Long.class); when(genericSearchBuilderMock.entity()).thenReturn(autoScalePolicyConditionMapVOMock); Mockito.doReturn(searchCriteriaLongMock).when(genericSearchBuilderMock).create(); Mockito.doReturn(Arrays.asList(scaleUpPolicyId)).when(autoScalePolicyConditionMapDao).customSearch(searchCriteriaLongMock, null); SearchBuilder<AutoScaleVmGroupPolicyMapVO> searchBuilderMock1 = Mockito.mock(SearchBuilder.class); Mockito.doReturn(searchBuilderMock1).when(autoScaleVmGroupPolicyMapDao).createSearchBuilder(); when(searchBuilderMock1.entity()).thenReturn(autoScaleVmGroupPolicyMapVOMock); SearchBuilder<AutoScaleVmGroupVO> searchBuilderMock2 = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScaleVmGroupVO> searchCriteriaMock2 = Mockito.mock(SearchCriteria.class); Mockito.doReturn(searchBuilderMock2).when(autoScaleVmGroupDao).createSearchBuilder(); when(searchBuilderMock2.entity()).thenReturn(asVmGroupMock); Mockito.doReturn(searchCriteriaMock2).when(searchBuilderMock2).create(); Mockito.doReturn(Arrays.asList(asVmGroupMock)).when(autoScaleVmGroupDao).search(searchCriteriaMock2, null); UpdateConditionCmd cmd = new UpdateConditionCmd(); ReflectionTestUtils.setField(cmd, "id", conditionId); ReflectionTestUtils.setField(cmd, "relationalOperator", String.valueOf(relationalOperator)); ReflectionTestUtils.setField(cmd, "threshold", 100L); Condition condition = autoScaleManagerImplSpy.updateCondition(cmd); Mockito.verify(conditionDao, never()).update(eq(conditionId), Mockito.any()); }
Reusable Method for MCI (click to expand)
private static <T> GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> createMockGenericSearchBuilder(SearchCriteria<Long> searchCriteriaMock, AutoScalePolicyConditionMapVO autoScalePolicyConditionMapVOMock) { GenericSearchBuilder<AutoScalePolicyConditionMapVO, Long> searchBuilderMock = Mockito.mock(GenericSearchBuilder.class); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(searchBuilderMock.entity()).thenReturn(autoScalePolicyConditionMapVOMock); return searchBuilderMock; }

Mock Clone Instance #cloudstack_MCI_107

Reusable Method

public class MockFile { public static File createMockFile(long lengthReturn) { File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(lengthReturn); return mockFile; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_107_1

Test Case Name: testGetVirtualSizeWhenVirtualSizeThrowsException(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\OVAProcessorTest.java)

Mock Object Variable Name: mockFile

Suggested Diff
--- original +++ refactored @@ long virtualSize = 2000; long actualSize = 1000; String templatePath = "/tmp"; String templateName = "template"; - File mockFile = Mockito.mock(File.class); - Mockito.when(mockFile.length()).thenReturn(actualSize); - Mockito.when(mockFile.getParent()).thenReturn(templatePath); - Mockito.when(mockFile.getName()).thenReturn(templateName); + File mockFile = MockFile.createMockFile(actualSize); + Mockito.when(mockFile.getParent()).thenReturn(templatePath); + Mockito.when(mockFile.getName()).thenReturn(templateName); Mockito.doThrow(new InternalErrorException("virtual size calculation failed")).when(processor).getTemplateVirtualSize(templatePath, templateName); Assert.assertEquals(actualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(1)).length(); @@
Original Test Code (click to expand)
@Test public void testGetVirtualSizeWhenVirtualSizeThrowsException() throws Exception { long virtualSize = 2000; long actualSize = 1000; String templatePath = "/tmp"; String templateName = "template"; File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(actualSize); Mockito.when(mockFile.getParent()).thenReturn(templatePath); Mockito.when(mockFile.getName()).thenReturn(templateName); Mockito.doThrow(new InternalErrorException("virtual size calculation failed")).when(processor).getTemplateVirtualSize(templatePath, templateName); Assert.assertEquals(actualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(1)).length(); }
Reusable Method for MCI (click to expand)
public class MockFile { public static File createMockFile(long lengthReturn) { File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(lengthReturn); return mockFile; } }

Test Case ID #cloudstack_Test_107_2

Test Case Name: testGetVirtualSize(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\OVAProcessorTest.java)

Mock Object Variable Name: mockFile

Suggested Diff
--- original +++ refactored @@ long virtualSize = 2000; long actualSize = 1000; String templatePath = "/tmp"; String templateName = "template"; - File mockFile = Mockito.mock(File.class); - Mockito.when(mockFile.length()).thenReturn(actualSize); - Mockito.when(mockFile.getParent()).thenReturn(templatePath); - Mockito.when(mockFile.getName()).thenReturn(templateName); + File mockFile = MockFile.createMockFile(actualSize); + Mockito.when(mockFile.getParent()).thenReturn(templatePath); + Mockito.when(mockFile.getName()).thenReturn(templateName); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize(templatePath, templateName); Assert.assertEquals(virtualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(0)).length(); @@
Original Test Code (click to expand)
@Test public void testGetVirtualSize() throws Exception { long virtualSize = 2000; long actualSize = 1000; String templatePath = "/tmp"; String templateName = "template"; File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(actualSize); Mockito.when(mockFile.getParent()).thenReturn(templatePath); Mockito.when(mockFile.getName()).thenReturn(templateName); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize(templatePath, templateName); Assert.assertEquals(virtualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(0)).length(); }
Reusable Method for MCI (click to expand)
public class MockFile { public static File createMockFile(long lengthReturn) { File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(lengthReturn); return mockFile; } }

Test Case ID #cloudstack_Test_107_3

Test Case Name: testGetVirtualSizeWhenVirtualSizeThrowsException(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\QCOW2ProcessorTest.java)

Mock Object Variable Name: mockFile

Suggested Diff
--- original +++ refactored @@ long virtualSize = 2000; long actualSize = 1000; - File mockFile = Mockito.mock(File.class); - Mockito.when(mockFile.length()).thenReturn(actualSize); + File mockFile = MockFile.createMockFile(actualSize); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(actualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(1)).length(); @@
Original Test Code (click to expand)
@Test public void testGetVirtualSizeWhenVirtualSizeThrowsException() throws Exception { long virtualSize = 2000; long actualSize = 1000; File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(actualSize); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(actualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(1)).length(); }
Reusable Method for MCI (click to expand)
public class MockFile { public static File createMockFile(long lengthReturn) { File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(lengthReturn); return mockFile; } }

Test Case ID #cloudstack_Test_107_4

Test Case Name: testGetVirtualSize(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\QCOW2ProcessorTest.java)

Mock Object Variable Name: mockFile

Suggested Diff
--- original +++ refactored @@ long virtualSize = 2000; long actualSize = 1000; - File mockFile = Mockito.mock(File.class); - Mockito.when(mockFile.length()).thenReturn(actualSize); + File mockFile = MockFile.createMockFile(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(virtualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(0)).length(); @@
Original Test Code (click to expand)
@Test public void testGetVirtualSize() throws Exception { long virtualSize = 2000; long actualSize = 1000; File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(virtualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(0)).length(); }
Reusable Method for MCI (click to expand)
public class MockFile { public static File createMockFile(long lengthReturn) { File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(lengthReturn); return mockFile; } }

Test Case ID #cloudstack_Test_107_5

Test Case Name: testGetVirtualSizeWhenVirtualSizeThrowsException(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\VhdProcessorTest.java)

Mock Object Variable Name: mockFile

Suggested Diff
--- original +++ refactored @@ long virtualSize = 2000; long actualSize = 1000; - File mockFile = Mockito.mock(File.class); - Mockito.when(mockFile.length()).thenReturn(actualSize); + File mockFile = MockFile.createMockFile(actualSize); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(actualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(1)).length(); @@
Original Test Code (click to expand)
@Test public void testGetVirtualSizeWhenVirtualSizeThrowsException() throws Exception { long virtualSize = 2000; long actualSize = 1000; File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(actualSize); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(actualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(1)).length(); }
Reusable Method for MCI (click to expand)
public class MockFile { public static File createMockFile(long lengthReturn) { File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(lengthReturn); return mockFile; } }

Test Case ID #cloudstack_Test_107_6

Test Case Name: testGetVirtualSize(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\VhdProcessorTest.java)

Mock Object Variable Name: mockFile

Suggested Diff
--- original +++ refactored @@ long virtualSize = 2000; long actualSize = 1000; - File mockFile = Mockito.mock(File.class); - Mockito.when(mockFile.length()).thenReturn(actualSize); + File mockFile = MockFile.createMockFile(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(virtualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(0)).length(); @@
Original Test Code (click to expand)
@Test public void testGetVirtualSize() throws Exception { long virtualSize = 2000; long actualSize = 1000; File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Assert.assertEquals(virtualSize, processor.getVirtualSize(mockFile)); Mockito.verify(mockFile, Mockito.times(0)).length(); }
Reusable Method for MCI (click to expand)
public class MockFile { public static File createMockFile(long lengthReturn) { File mockFile = Mockito.mock(File.class); Mockito.when(mockFile.length()).thenReturn(lengthReturn); return mockFile; } }

Mock Clone Instance #cloudstack_MCI_108

Reusable Method

private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_108_1

Test Case Name: writeVendorAndNetworkEmptyJsonFileTestCreatingFolder(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: folderFileMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(ConfigDriveBuilder.class); - File folderFileMock = Mockito.mock(File.class); - Mockito.doReturn(false).when(folderFileMock).exists(); - Mockito.doReturn(true).when(folderFileMock).mkdirs(); + File folderFileMock = createMockFile(false); + Mockito.doReturn(true).when(folderFileMock).mkdirs(); //force execution of real method Method writeVendorAndNetworkEmptyJsonFileMethod = getWriteVendorAndNetworkEmptyJsonFileMethod(); PowerMockito.when(ConfigDriveBuilder.class, writeVendorAndNetworkEmptyJsonFileMethod).withArguments(folderFileMock).thenCallRealMethod(); ConfigDriveBuilder.writeVendorAndNetworkEmptyJsonFile(folderFileMock); Mockito.verify(folderFileMock).exists(); Mockito.verify(folderFileMock).mkdirs(); PowerMockito.verifyStatic(ConfigDriveBuilder.class); ConfigDriveBuilder.writeFile(Mockito.any(File.class), Mockito.eq("vendor_data.json"), Mockito.eq("{}")); ConfigDriveBuilder.writeFile(Mockito.any(File.class), Mockito.eq("network_data.json"), Mockito.eq("{}")); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ ConfigDriveBuilder.class }) public void writeVendorAndNetworkEmptyJsonFileTestCreatingFolder() throws Exception { PowerMockito.mockStatic(ConfigDriveBuilder.class); File folderFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(folderFileMock).exists(); Mockito.doReturn(true).when(folderFileMock).mkdirs(); //force execution of real method Method writeVendorAndNetworkEmptyJsonFileMethod = getWriteVendorAndNetworkEmptyJsonFileMethod(); PowerMockito.when(ConfigDriveBuilder.class, writeVendorAndNetworkEmptyJsonFileMethod).withArguments(folderFileMock).thenCallRealMethod(); ConfigDriveBuilder.writeVendorAndNetworkEmptyJsonFile(folderFileMock); Mockito.verify(folderFileMock).exists(); Mockito.verify(folderFileMock).mkdirs(); PowerMockito.verifyStatic(ConfigDriveBuilder.class); ConfigDriveBuilder.writeFile(Mockito.any(File.class), Mockito.eq("vendor_data.json"), Mockito.eq("{}")); ConfigDriveBuilder.writeFile(Mockito.any(File.class), Mockito.eq("network_data.json"), Mockito.eq("{}")); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_2

Test Case Name: linkUserDataTestUserDataFilePathDoesNotExist(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: fileMock

Suggested Diff
--- original +++ refactored @@ public void linkUserDataTestUserDataFilePathDoesNotExist() throws Exception { - File fileMock = Mockito.mock(File.class); - Mockito.doReturn(false).when(fileMock).exists(); + File fileMock = createMockFile(false); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); ConfigDriveBuilder.linkUserData("test"); Mockito.verify(scriptMock, times(0)).execute(); }
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void linkUserDataTestUserDataFilePathDoesNotExist() throws Exception { File fileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(fileMock).exists(); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); ConfigDriveBuilder.linkUserData("test"); Mockito.verify(scriptMock, times(0)).execute(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_3

Test Case Name: linkUserDataTestUserDataFilePathExistAndExecutionPresentedSomeError(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: fileMock

Suggested Diff
--- original +++ refactored @@ public void linkUserDataTestUserDataFilePathExistAndExecutionPresentedSomeError() throws Exception { - File fileMock = Mockito.mock(File.class); - Mockito.doReturn(true).when(fileMock).exists(); + File fileMock = createMockFile(true); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn("message").when(scriptMock).execute(); ConfigDriveBuilder.linkUserData("test"); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void linkUserDataTestUserDataFilePathExistAndExecutionPresentedSomeError() throws Exception { File fileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(fileMock).exists(); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn("message").when(scriptMock).execute(); ConfigDriveBuilder.linkUserData("test"); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_4

Test Case Name: linkUserDataTest(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: fileMock

Suggested Diff
--- original +++ refactored @@ public void linkUserDataTest() throws Exception { - File fileMock = Mockito.mock(File.class); - Mockito.doReturn(true).when(fileMock).exists(); + File fileMock = createMockFile(true); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); String tempDirName = "test"; ConfigDriveBuilder.linkUserData(tempDirName); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.cloudStackConfigDriveName + "userdata/user_data.txt"); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.openStackConfigDriveName + "user_data"); Mockito.verify(scriptMock).execute(); }
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void linkUserDataTest() throws Exception { File fileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(fileMock).exists(); PowerMockito.mockStatic(File.class, Script.class); PowerMockito.whenNew(File.class).withArguments(Mockito.anyString()).thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); String tempDirName = "test"; ConfigDriveBuilder.linkUserData(tempDirName); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.cloudStackConfigDriveName + "userdata/user_data.txt"); Mockito.verify(scriptMock).add(tempDirName + ConfigDrive.openStackConfigDriveName + "user_data"); Mockito.verify(scriptMock).execute(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_5

Test Case Name: getProgramToGenerateIsoTestGenIsoExistsAndIsExecutable(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: genIsoFileMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(File.class); - File genIsoFileMock = Mockito.mock(File.class); - Mockito.doReturn(true).when(genIsoFileMock).exists(); - Mockito.doReturn(true).when(genIsoFileMock).canExecute(); + File genIsoFileMock = createMockFile(true); + Mockito.doReturn(true).when(genIsoFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(2)).exists(); Mockito.verify(genIsoFileMock).canExecute(); Mockito.verify(genIsoFileMock).getCanonicalPath(); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, ConfigDriveBuilder.class }) public void getProgramToGenerateIsoTestGenIsoExistsAndIsExecutable() throws Exception { PowerMockito.mockStatic(File.class); File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(genIsoFileMock).exists(); Mockito.doReturn(true).when(genIsoFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(2)).exists(); Mockito.verify(genIsoFileMock).canExecute(); Mockito.verify(genIsoFileMock).getCanonicalPath(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_6

Test Case Name: getProgramToGenerateIsoTestGenIsoExistsbutNotExecutable(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: genIsoFileMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(File.class); - File genIsoFileMock = Mockito.mock(File.class); - Mockito.doReturn(true).when(genIsoFileMock).exists(); + File genIsoFileMock = createMockFile(true); Mockito.doReturn(false).when(genIsoFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) @PrepareForTest({ File.class, ConfigDriveBuilder.class }) public void getProgramToGenerateIsoTestGenIsoExistsbutNotExecutable() throws Exception { PowerMockito.mockStatic(File.class); File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(genIsoFileMock).exists(); Mockito.doReturn(false).when(genIsoFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_7

Test Case Name: getProgramToGenerateIsoTestNotGenIsoMkIsoInLinux(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: genIsoFileMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(File.class); - File genIsoFileMock = Mockito.mock(File.class); - Mockito.doReturn(false).when(genIsoFileMock).exists(); + File genIsoFileMock = createMockFile(false); File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(2)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).getCanonicalPath(); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, ConfigDriveBuilder.class }) public void getProgramToGenerateIsoTestNotGenIsoMkIsoInLinux() throws Exception { PowerMockito.mockStatic(File.class); File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(genIsoFileMock).exists(); File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(2)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).getCanonicalPath(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_8

Test Case Name: getProgramToGenerateIsoTestNotGenIsoMkIsoInLinux(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: mkIsoProgramInLinuxFileMock

Suggested Diff
--- original +++ refactored @@ File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(genIsoFileMock).exists(); - File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); - Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).exists(); - Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).canExecute(); + File mkIsoProgramInLinuxFileMock = createMockFile(true); + Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(2)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).getCanonicalPath(); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, ConfigDriveBuilder.class }) public void getProgramToGenerateIsoTestNotGenIsoMkIsoInLinux() throws Exception { PowerMockito.mockStatic(File.class); File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(genIsoFileMock).exists(); File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInLinuxFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(2)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).getCanonicalPath(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_9

Test Case Name: getProgramToGenerateIsoTestMkIsoMac(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: genIsoFileMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(File.class); - File genIsoFileMock = Mockito.mock(File.class); - Mockito.doReturn(false).when(genIsoFileMock).exists(); + File genIsoFileMock = createMockFile(false); File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(mkIsoProgramInLinuxFileMock).exists(); File mkIsoProgramInMacOsFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/local/bin/mkisofs").thenReturn(mkIsoProgramInMacOsFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).getCanonicalPath(); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, ConfigDriveBuilder.class }) public void getProgramToGenerateIsoTestMkIsoMac() throws Exception { PowerMockito.mockStatic(File.class); File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(genIsoFileMock).exists(); File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(mkIsoProgramInLinuxFileMock).exists(); File mkIsoProgramInMacOsFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/local/bin/mkisofs").thenReturn(mkIsoProgramInMacOsFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).getCanonicalPath(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_10

Test Case Name: getProgramToGenerateIsoTestMkIsoMac(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: mkIsoProgramInLinuxFileMock

Suggested Diff
--- original +++ refactored @@ File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(genIsoFileMock).exists(); - File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); - Mockito.doReturn(false).when(mkIsoProgramInLinuxFileMock).exists(); + File mkIsoProgramInLinuxFileMock = createMockFile(false); File mkIsoProgramInMacOsFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/local/bin/mkisofs").thenReturn(mkIsoProgramInMacOsFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).getCanonicalPath(); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, ConfigDriveBuilder.class }) public void getProgramToGenerateIsoTestMkIsoMac() throws Exception { PowerMockito.mockStatic(File.class); File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(genIsoFileMock).exists(); File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(mkIsoProgramInLinuxFileMock).exists(); File mkIsoProgramInMacOsFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/local/bin/mkisofs").thenReturn(mkIsoProgramInMacOsFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).getCanonicalPath(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Test Case ID #cloudstack_Test_108_11

Test Case Name: getProgramToGenerateIsoTestMkIsoMac(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: mkIsoProgramInMacOsFileMock

Suggested Diff
--- original +++ refactored @@ File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(mkIsoProgramInLinuxFileMock).exists(); - File mkIsoProgramInMacOsFileMock = Mockito.mock(File.class); - Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).exists(); + File mkIsoProgramInMacOsFileMock = createMockFile(true); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); @@
Original Test Code (click to expand)
@Test @PrepareForTest({ File.class, ConfigDriveBuilder.class }) public void getProgramToGenerateIsoTestMkIsoMac() throws Exception { PowerMockito.mockStatic(File.class); File genIsoFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(genIsoFileMock).exists(); File mkIsoProgramInLinuxFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(mkIsoProgramInLinuxFileMock).exists(); File mkIsoProgramInMacOsFileMock = Mockito.mock(File.class); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).exists(); Mockito.doReturn(true).when(mkIsoProgramInMacOsFileMock).canExecute(); PowerMockito.whenNew(File.class).withArguments("/usr/bin/genisoimage").thenReturn(genIsoFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/bin/mkisofs").thenReturn(mkIsoProgramInLinuxFileMock); PowerMockito.whenNew(File.class).withArguments("/usr/local/bin/mkisofs").thenReturn(mkIsoProgramInMacOsFileMock); ConfigDriveBuilder.getProgramToGenerateIso(); Mockito.verify(genIsoFileMock, Mockito.times(1)).exists(); Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute(); Mockito.verify(genIsoFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).canExecute(); Mockito.verify(mkIsoProgramInLinuxFileMock, Mockito.times(0)).getCanonicalPath(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).exists(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).canExecute(); Mockito.verify(mkIsoProgramInMacOsFileMock, Mockito.times(1)).getCanonicalPath(); }
Reusable Method for MCI (click to expand)
private static File createMockFile(boolean existsReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(existsReturn).when(fileMock).exists(); return fileMock; }

Mock Clone Instance #cloudstack_MCI_109

Reusable Method

private static File createMockFileWithMkdirsReturningFalse() { File fileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(fileMock).mkdirs(); return fileMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_109_1

Test Case Name: writeVendorAndNetworkEmptyJsonFileTestCannotCreateOpenStackFolder(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: folderFileMock

Suggested Diff
--- original +++ refactored @@ @Test(expected = CloudRuntimeException.class) public void writeVendorAndNetworkEmptyJsonFileTestCannotCreateOpenStackFolder() { - File folderFileMock = Mockito.mock(File.class); - Mockito.doReturn(false).when(folderFileMock).mkdirs(); + File folderFileMock = createMockFileWithMkdirsReturningFalse(); ConfigDriveBuilder.writeVendorAndNetworkEmptyJsonFile(folderFileMock); } @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void writeVendorAndNetworkEmptyJsonFileTestCannotCreateOpenStackFolder() { File folderFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(folderFileMock).mkdirs(); ConfigDriveBuilder.writeVendorAndNetworkEmptyJsonFile(folderFileMock); }
Reusable Method for MCI (click to expand)
private static File createMockFileWithMkdirsReturningFalse() { File fileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(fileMock).mkdirs(); return fileMock; }

Test Case ID #cloudstack_Test_109_2

Test Case Name: writeVendorAndNetworkEmptyJsonFileTest(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: folderFileMock

Suggested Diff
--- original +++ refactored @@ @Test(expected = CloudRuntimeException.class) public void writeVendorAndNetworkEmptyJsonFileTest() { - File folderFileMock = Mockito.mock(File.class); - Mockito.doReturn(false).when(folderFileMock).mkdirs(); + File folderFileMock = createMockFileWithMkdirsReturningFalse(); ConfigDriveBuilder.writeVendorAndNetworkEmptyJsonFile(folderFileMock); } @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void writeVendorAndNetworkEmptyJsonFileTest() { File folderFileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(folderFileMock).mkdirs(); ConfigDriveBuilder.writeVendorAndNetworkEmptyJsonFile(folderFileMock); }
Reusable Method for MCI (click to expand)
private static File createMockFileWithMkdirsReturningFalse() { File fileMock = Mockito.mock(File.class); Mockito.doReturn(false).when(fileMock).mkdirs(); return fileMock; }

Mock Clone Instance #cloudstack_MCI_110

Reusable Method

private static File createMockFile(long lengthReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(lengthReturn).when(fileMock).length(); return fileMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_110_1

Test Case Name: generateAndRetrieveIsoAsBase64IsoTestIsoTooBig(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: fileMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(File.class, Script.class, ConfigDriveBuilder.class); - File fileMock = Mockito.mock(File.class); - PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(fileMock); + File fileMock = createMockFile(64L * 1024L * 1024L + 1l); + PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); - Mockito.doReturn(64L * 1024L * 1024L + 1l).when(fileMock).length(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, method).withArguments(nullable(String.class), nullable(String.class), nullable(String.class)).thenCallRealMethod(); Method getProgramToGenerateIsoMethod = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("getProgramToGenerateIso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, getProgramToGenerateIsoMethod).withNoArguments().thenReturn("/usr/bin/genisoimage"); ConfigDriveBuilder.generateAndRetrieveIsoAsBase64Iso("isoFileName", "driveLabel", "tempDirName"); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test(expected = CloudRuntimeException.class) @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void generateAndRetrieveIsoAsBase64IsoTestIsoTooBig() throws Exception { PowerMockito.mockStatic(File.class, Script.class, ConfigDriveBuilder.class); File fileMock = Mockito.mock(File.class); PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); Mockito.doReturn(64L * 1024L * 1024L + 1l).when(fileMock).length(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, method).withArguments(nullable(String.class), nullable(String.class), nullable(String.class)).thenCallRealMethod(); Method getProgramToGenerateIsoMethod = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("getProgramToGenerateIso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, getProgramToGenerateIsoMethod).withNoArguments().thenReturn("/usr/bin/genisoimage"); ConfigDriveBuilder.generateAndRetrieveIsoAsBase64Iso("isoFileName", "driveLabel", "tempDirName"); }
Reusable Method for MCI (click to expand)
private static File createMockFile(long lengthReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(lengthReturn).when(fileMock).length(); return fileMock; }

Test Case ID #cloudstack_Test_110_2

Test Case Name: generateAndRetrieveIsoAsBase64IsoTest(File: C:\Java_projects\Apache\cloudstack\engine\storage\configdrive\src\test\java\org\apache\cloudstack\storage\configdrive\ConfigDriveBuilderTest.java)

Mock Object Variable Name: fileMock

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(File.class, Script.class, ConfigDriveBuilder.class); - File fileMock = Mockito.mock(File.class); + File fileMock = createMockFile(64L * 1024L * 1024L); PowerMockito.whenNew(File.class).withArguments("tempDirName", "isoFileName").thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); - Mockito.when(fileMock.getAbsolutePath()).thenReturn("absolutePath"); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); - Mockito.doReturn(64L * 1024L * 1024L).when(fileMock).length(); + Mockito.when(fileMock.getAbsolutePath()).thenReturn("absolutePath"); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); @@
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") @PrepareForTest({ File.class, Script.class, ConfigDriveBuilder.class }) public void generateAndRetrieveIsoAsBase64IsoTest() throws Exception { PowerMockito.mockStatic(File.class, Script.class, ConfigDriveBuilder.class); File fileMock = Mockito.mock(File.class); PowerMockito.whenNew(File.class).withArguments("tempDirName", "isoFileName").thenReturn(fileMock); Script scriptMock = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(scriptMock); Mockito.when(fileMock.getAbsolutePath()).thenReturn("absolutePath"); Mockito.doReturn(StringUtils.EMPTY).when(scriptMock).execute(); Mockito.doReturn(64L * 1024L * 1024L).when(fileMock).length(); Method method = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("generateAndRetrieveIsoAsBase64Iso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, method).withArguments(nullable(String.class), nullable(String.class), nullable(String.class)).thenCallRealMethod(); Method getProgramToGenerateIsoMethod = ReflectionUtils.getMethods(ConfigDriveBuilder.class, ReflectionUtils.withName("getProgramToGenerateIso")).iterator().next(); PowerMockito.when(ConfigDriveBuilder.class, getProgramToGenerateIsoMethod).withNoArguments().thenReturn("/usr/bin/genisoimage"); ConfigDriveBuilder.generateAndRetrieveIsoAsBase64Iso("isoFileName", "driveLabel", "tempDirName"); InOrder inOrder = Mockito.inOrder(scriptMock); inOrder.verify(scriptMock).add("-o", "absolutePath"); inOrder.verify(scriptMock).add("-ldots"); inOrder.verify(scriptMock).add("-allow-lowercase"); inOrder.verify(scriptMock).add("-allow-multidot"); inOrder.verify(scriptMock).add("-cache-inodes"); inOrder.verify(scriptMock).add("-l"); inOrder.verify(scriptMock).add("-quiet"); inOrder.verify(scriptMock).add("-J"); inOrder.verify(scriptMock).add("-r"); inOrder.verify(scriptMock).add("-V", "driveLabel"); inOrder.verify(scriptMock).add("tempDirName"); inOrder.verify(scriptMock).execute(); PowerMockito.verifyStatic(ConfigDriveBuilder.class); ConfigDriveBuilder.fileToBase64String(nullable(File.class)); }
Reusable Method for MCI (click to expand)
private static File createMockFile(long lengthReturn) { File fileMock = Mockito.mock(File.class); Mockito.doReturn(lengthReturn).when(fileMock).length(); return fileMock; }

Mock Clone Instance #cloudstack_MCI_111

Reusable Method

// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_111_1

Test Case Name: testCheckOnHostCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testCheckOnHostCommand() { - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` ; final CheckOnHostCommand command = new CheckOnHostCommand(host); final KVMHAMonitor monitor = Mockito.mock(KVMHAMonitor.class); when(libvirtComputingResourceMock.getMonitor()).thenReturn(monitor); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getMonitor(); }
Original Test Code (click to expand)
@Test public void testCheckOnHostCommand() { final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); ; final CheckOnHostCommand command = new CheckOnHostCommand(host); final KVMHAMonitor monitor = Mockito.mock(KVMHAMonitor.class); when(libvirtComputingResourceMock.getMonitor()).thenReturn(monitor); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getMonitor(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_2

Test Case Name: testFenceCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testFenceCommand() { final VirtualMachine vm = Mockito.mock(VirtualMachine.class); ; - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final FenceCommand command = new FenceCommand(vm, host); final KVMHAMonitor monitor = Mockito.mock(KVMHAMonitor.class); final NfsStoragePool storagePool = Mockito.mock(NfsStoragePool.class); final List<NfsStoragePool> pools = new ArrayList<NfsStoragePool>(); pools.add(storagePool); when(libvirtComputingResourceMock.getMonitor()).thenReturn(monitor); when(monitor.getStoragePools()).thenReturn(pools); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getMonitor(); verify(monitor, times(1)).getStoragePools(); }
Original Test Code (click to expand)
@Test public void testFenceCommand() { final VirtualMachine vm = Mockito.mock(VirtualMachine.class); ; final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final FenceCommand command = new FenceCommand(vm, host); final KVMHAMonitor monitor = Mockito.mock(KVMHAMonitor.class); final NfsStoragePool storagePool = Mockito.mock(NfsStoragePool.class); final List<NfsStoragePool> pools = new ArrayList<NfsStoragePool>(); pools.add(storagePool); when(libvirtComputingResourceMock.getMonitor()).thenReturn(monitor); when(monitor.getStoragePools()).thenReturn(pools); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getMonitor(); verify(monitor, times(1)).getStoragePools(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_3

Test Case Name: testStartCommandFailedConnect(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testStartCommandFailedConnect() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final boolean executeInSequence = false; - final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); + final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
Original Test Code (click to expand)
@Test public void testStartCommandFailedConnect() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_4

Test Case Name: testStartCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testStartCommandLibvirtException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testStartCommandLibvirtException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_5

Test Case Name: testStartCommandInternalError(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testStartCommandInternalError() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testStartCommandInternalError() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(InternalErrorException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_6

Test Case Name: testStartCommandUriException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testStartCommandUriException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final boolean executeInSequence = false; - final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); + final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
Original Test Code (click to expand)
@Test public void testStartCommandUriException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(URISyntaxException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_7

Test Case Name: testStartCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testStartCommand() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testStartCommand() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); try { doNothing().when(libvirtComputingResourceMock).createVifs(vmSpec, vmDef); when(libvirtComputingResourceMock.startVM(conn, vmName, vmDef.toString())).thenReturn("SUCCESS"); when(vmSpec.getBootArgs()).thenReturn("ls -lart"); when(libvirtComputingResourceMock.passCmdLine(vmName, vmSpec.getBootArgs())).thenReturn(true); when(nic.getIp()).thenReturn(controlIp); when(nic.getType()).thenReturn(TrafficType.Control); when(libvirtComputingResourceMock.getVirtRouterResource()).thenReturn(virtRouterResource); when(virtRouterResource.connect(controlIp, 1, 5000)).thenReturn(true); when(virtRouterResource.isSystemVMSetup(vmName, controlIp)).thenReturn(true); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_8

Test Case Name: testStartCommandIsolationEc2(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testStartCommandIsolationEc2() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testStartCommandIsolationEc2() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); try { doNothing().when(libvirtComputingResourceMock).createVifs(vmSpec, vmDef); when(libvirtComputingResourceMock.startVM(conn, vmName, vmDef.toString())).thenReturn("SUCCESS"); when(nic.isSecurityGroupEnabled()).thenReturn(true); when(nic.getIsolationUri()).thenReturn(new URI("ec2://test")); when(vmSpec.getBootArgs()).thenReturn("ls -lart"); when(libvirtComputingResourceMock.passCmdLine(vmName, vmSpec.getBootArgs())).thenReturn(true); when(nic.getIp()).thenReturn(controlIp); when(nic.getType()).thenReturn(TrafficType.Control); when(libvirtComputingResourceMock.getVirtRouterResource()).thenReturn(virtRouterResource); when(virtRouterResource.connect(controlIp, 1, 5000)).thenReturn(true); when(virtRouterResource.isSystemVMSetup(vmName, controlIp)).thenReturn(true); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Test Case ID #cloudstack_Test_111_9

Test Case Name: testStartCommandHostMemory(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ @Test public void testStartCommandHostMemory() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); + // removed local mock; replaced with global field `host` final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testStartCommandHostMemory() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; int vmId = 1; final int[] vms = new int[] { vmId }; final Domain dm = Mockito.mock(Domain.class); final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.User); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getMaxRam()).thenReturn(512L); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); when(conn.domainLookupByID(vmId)).thenReturn(dm); when(dm.getMaxMemory()).thenReturn(1024L); when(dm.getName()).thenReturn(vmName); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private com.cloud.host.Host host; // === Add to @BeforeEach method === @BeforeEach public void setUp() { host = Mockito.mock(com.cloud.host.Host.class); } // === Replace local variable in test with === host;

Mock Clone Instance #cloudstack_MCI_112

Reusable Method

private static Host createMockHost(Long dataCenterId) { Host vmHost = mock(Host.class); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); return vmHost; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_112_1

Test Case Name: testaddHostIpToCertDetailsIfConfigAllows(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: vmHost

Suggested Diff
--- original +++ refactored @@ Host vmHost = mock(Host.class); ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); when(testConfig.valueIn(dataCenterId)).thenReturn(true); - Host vmHost = mock(Host.class); + Host vmHost = createMockHost(dataCenterId); - when(vmHost.getDataCenterId()).thenReturn(dataCenterId); when(vmHost.getPrivateIpAddress()).thenReturn(hostIp); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertTrue(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertEquals(hostIp, ipAddresses.get(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); @@
Original Test Code (click to expand)
@Test public void testaddHostIpToCertDetailsIfConfigAllows() { Host vmHost = mock(Host.class); ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); when(testConfig.valueIn(dataCenterId)).thenReturn(true); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); when(vmHost.getPrivateIpAddress()).thenReturn(hostIp); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertTrue(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertEquals(hostIp, ipAddresses.get(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(Long dataCenterId) { Host vmHost = mock(Host.class); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); return vmHost; }

Test Case ID #cloudstack_Test_112_2

Test Case Name: testaddHostIpToCertDetailsIfConfigAllowsWhenConfigFalse(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: vmHost

Suggested Diff
@@ Host vmHost = mock(Host.class); ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); when(testConfig.valueIn(dataCenterId)).thenReturn(false); - when(vmHost.getDataCenterId()).thenReturn(dataCenterId); + Host vmHost = createMockHost(dataCenterId); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertFalse(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); @@
Original Test Code (click to expand)
@Test public void testaddHostIpToCertDetailsIfConfigAllowsWhenConfigFalse() { Host vmHost = mock(Host.class); ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); when(testConfig.valueIn(dataCenterId)).thenReturn(false); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertFalse(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(Long dataCenterId) { Host vmHost = mock(Host.class); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); return vmHost; }

Mock Clone Instance #cloudstack_MCI_113

Reusable Method

private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_113_1

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host1

Suggested Diff
--- original +++ refactored @@ priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); - Host host1 = Mockito.mock(Host.class); - Mockito.when(host1.getId()).thenReturn(1L); + Host host1 = createMockHost(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_2

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host2

Suggested Diff
--- original +++ refactored @@ priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); - Host host2 = Mockito.mock(Host.class); - Mockito.when(host2.getId()).thenReturn(2L); + Host host2 = createMockHost(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_3

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host3

Suggested Diff
--- original +++ refactored @@ Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); - Host host3 = Mockito.mock(Host.class); - Mockito.when(host3.getId()).thenReturn(3L); + Host host3 = createMockHost(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_4

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host4

Suggested Diff
--- original +++ refactored @@ Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); - Host host4 = Mockito.mock(Host.class); - Mockito.when(host4.getId()).thenReturn(4L); + Host host4 = createMockHost(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_5

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host5

Suggested Diff
--- original +++ refactored @@ Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); - Host host5 = Mockito.mock(Host.class); - Mockito.when(host5.getId()).thenReturn(5L); + Host host5 = createMockHost(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_6

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host6

Suggested Diff
--- original +++ refactored @@ Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); - Host host6 = Mockito.mock(Host.class); - Mockito.when(host6.getId()).thenReturn(6L); + Host host6 = createMockHost(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_7

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host7

Suggested Diff
--- original +++ refactored @@ Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); - Host host7 = Mockito.mock(Host.class); - Mockito.when(host7.getId()).thenReturn(7L); + Host host7 = createMockHost(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_8

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host8

Suggested Diff
--- original +++ refactored @@ Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); - Host host8 = Mockito.mock(Host.class); - Mockito.when(host8.getId()).thenReturn(8L); + Host host8 = createMockHost(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_9

Test Case Name: testReorderHostsByPriority(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host9

Suggested Diff
--- original +++ refactored @@ Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); - Host host9 = Mockito.mock(Host.class); - Mockito.when(host9.getId()).thenReturn(9L); + Host host9 = createMockHost(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); @@
Original Test Code (click to expand)
@Test public void testReorderHostsByPriority() { Map<Long, Integer> priorities = new LinkedHashMap<>(); priorities.put(1L, 3); priorities.put(2L, -6); priorities.put(3L, 5); priorities.put(5L, 8); priorities.put(6L, -1); priorities.put(8L, 5); priorities.put(9L, DataCenterDeployment.PROHIBITED_HOST_PRIORITY); Host host1 = Mockito.mock(Host.class); Mockito.when(host1.getId()).thenReturn(1L); Host host2 = Mockito.mock(Host.class); Mockito.when(host2.getId()).thenReturn(2L); Host host3 = Mockito.mock(Host.class); Mockito.when(host3.getId()).thenReturn(3L); Host host4 = Mockito.mock(Host.class); Mockito.when(host4.getId()).thenReturn(4L); Host host5 = Mockito.mock(Host.class); Mockito.when(host5.getId()).thenReturn(5L); Host host6 = Mockito.mock(Host.class); Mockito.when(host6.getId()).thenReturn(6L); Host host7 = Mockito.mock(Host.class); Mockito.when(host7.getId()).thenReturn(7L); Host host8 = Mockito.mock(Host.class); Mockito.when(host8.getId()).thenReturn(8L); Host host9 = Mockito.mock(Host.class); Mockito.when(host9.getId()).thenReturn(9L); List<Host> hosts = new ArrayList<>(Arrays.asList(host1, host2, host3, host4, host5, host6, host7, host8, host9)); _dpm.reorderHostsByPriority(priorities, hosts); Assert.assertEquals(8, hosts.size()); Assert.assertEquals(5, hosts.get(0).getId()); Assert.assertEquals(3, hosts.get(1).getId()); Assert.assertEquals(8, hosts.get(2).getId()); Assert.assertEquals(1, hosts.get(3).getId()); Assert.assertEquals(4, hosts.get(4).getId()); Assert.assertEquals(7, hosts.get(5).getId()); Assert.assertEquals(6, hosts.get(6).getId()); Assert.assertEquals(2, hosts.get(7).getId()); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Test Case ID #cloudstack_Test_113_10

Test Case Name: testSetUp(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: host

Suggested Diff
@@ planners.add(_planner); _dpm.setPlanners(planners); - Mockito.when(host.getId()).thenReturn(hostId); + host = createMockHost(hostId); Mockito.doNothing().when(_dpm).avoidDisabledResources(vmProfile, dc, avoids); }
Original Test Code (click to expand)
@Before public void testSetUp() { MockitoAnnotations.initMocks(this); ComponentContext.initComponentsLifeCycle(); PlannerHostReservationVO reservationVO = new PlannerHostReservationVO(hostId, dataCenterId, podId, clusterId, PlannerResourceUsage.Shared); Mockito.when(_plannerHostReserveDao.persist(Matchers.any(PlannerHostReservationVO.class))).thenReturn(reservationVO); Mockito.when(_plannerHostReserveDao.findById(Matchers.anyLong())).thenReturn(reservationVO); Mockito.when(_affinityGroupVMMapDao.countAffinityGroupsForVm(Matchers.anyLong())).thenReturn(0L); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); Mockito.when(template.isDeployAsIs()).thenReturn(false); Mockito.when(templateDao.findById(Mockito.anyLong())).thenReturn(template); VMInstanceVO vm = new VMInstanceVO(); Mockito.when(vmProfile.getVirtualMachine()).thenReturn(vm); Mockito.when(vmProfile.getId()).thenReturn(instanceId); Mockito.when(vmDetailsDao.listDetailsKeyPairs(Matchers.anyLong())).thenReturn(null); Mockito.when(volDao.findByInstance(Matchers.anyLong())).thenReturn(new ArrayList<>()); Mockito.when(_dcDao.findById(Matchers.anyLong())).thenReturn(dc); Mockito.when(dc.getId()).thenReturn(dataCenterId); ClusterVO clusterVO = new ClusterVO(); clusterVO.setHypervisorType(HypervisorType.XenServer.toString()); Mockito.when(_clusterDao.findById(Matchers.anyLong())).thenReturn(clusterVO); Mockito.when(_planner.getName()).thenReturn("FirstFitPlanner"); List<DeploymentPlanner> planners = new ArrayList<DeploymentPlanner>(); planners.add(_planner); _dpm.setPlanners(planners); Mockito.when(host.getId()).thenReturn(hostId); Mockito.doNothing().when(_dpm).avoidDisabledResources(vmProfile, dc, avoids); }
Reusable Method for MCI (click to expand)
private static Host createMockHost(long id) { Host host = Mockito.mock(Host.class); Mockito.when(host.getId()).thenReturn(id); return host; }

Mock Clone Instance #cloudstack_MCI_114

Reusable Method

public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_114_1

Test Case Name: canHandleKVMLiveStorageMigrationInterCluster(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\KvmNonManagedStorageSystemDataMotionTest.java)

Mock Object Variable Name: host2

Suggested Diff
--- Original +++ Refactored @@ when(host1.getId()).thenReturn(HOST_1_ID); when(host1.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); - when(host2.getId()).thenReturn(HOST_2_ID); - when(host2.getClusterId()).thenReturn(CLUSTER_ID); - lenient().when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); } @Test public void canHandleKVMLiveStorageMigrationInterCluster() { - when(host2.getClusterId()).thenReturn(5L); + host2 = MockHost.createMockHost(5L); StrategyPriority priority = kvmNonManagedStorageDataMotionStrategy.canHandleKVMNonManagedLiveNFSStorageMigration(migrationMap, host1, host2); assertEquals(StrategyPriority.CANT_HANDLE, priority); }
Original Test Code (click to expand)
@Before public void setUp() { migrationMap = new HashMap<>(); migrationMap.put(volumeInfo1, dataStore2); migrationMap.put(volumeInfo2, dataStore2); when(volumeInfo1.getPoolId()).thenReturn(POOL_1_ID); when(primaryDataStoreDao.findById(POOL_1_ID)).thenReturn(pool1); when(pool1.isManaged()).thenReturn(false); when(dataStore2.getId()).thenReturn(POOL_2_ID); when(primaryDataStoreDao.findById(POOL_2_ID)).thenReturn(pool2); when(pool2.isManaged()).thenReturn(true); when(volumeInfo1.getDataStore()).thenReturn(dataStore1); when(volumeInfo2.getPoolId()).thenReturn(POOL_1_ID); lenient().when(volumeInfo2.getDataStore()).thenReturn(dataStore1); lenient().when(dataStore1.getId()).thenReturn(POOL_1_ID); when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); lenient().when(dataStore3.getId()).thenReturn(POOL_3_ID); lenient().when(primaryDataStoreDao.findById(POOL_3_ID)).thenReturn(pool3); lenient().when(pool3.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); lenient().when(pool3.getScope()).thenReturn(ScopeType.CLUSTER); when(host1.getId()).thenReturn(HOST_1_ID); when(host1.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(host2.getId()).thenReturn(HOST_2_ID); when(host2.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); } @Test public void canHandleKVMLiveStorageMigrationInterCluster() { when(host2.getClusterId()).thenReturn(5L); StrategyPriority priority = kvmNonManagedStorageDataMotionStrategy.canHandleKVMNonManagedLiveNFSStorageMigration(migrationMap, host1, host2); assertEquals(StrategyPriority.CANT_HANDLE, priority); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_2

Test Case Name: testMigrateWithinClusterSuccess(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: srcHost

Suggested Diff
--- original +++ refactored @@ @Test public void testMigrateWithinClusterSuccess() throws Exception { - Host srcHost = mock(Host.class); + Host srcHost = MockHost.createMockHost(1L); Host destHost = mock(Host.class); - when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration within cluster isn't successful.", result.isSuccess()); } @@
Original Test Code (click to expand)
@Test public void testMigrateWithinClusterSuccess() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration within cluster isn't successful.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_3

Test Case Name: testMigrateWithinClusterSuccess(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: destHost

Suggested Diff
--- original +++ refactored @@ Host srcHost = mock(Host.class); - Host destHost = mock(Host.class); - when(destHost.getClusterId()).thenReturn(1L); + Host destHost = MockHost.createMockHost(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); @@
Original Test Code (click to expand)
@Test public void testMigrateWithinClusterSuccess() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration within cluster isn't successful.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_4

Test Case Name: testMigrateWithinClusterFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: srcHost

Suggested Diff
--- original +++ refactored @@ public void testMigrateWithinClusterFailure() throws Exception { - Host srcHost = mock(Host.class); + Host srcHost = MockHost.createMockHost(1L); Host destHost = mock(Host.class); - when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration within cluster didn't fail.", result.isSuccess()); }
Original Test Code (click to expand)
@Test public void testMigrateWithinClusterFailure() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration within cluster didn't fail.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_5

Test Case Name: testMigrateWithinClusterFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: destHost

Suggested Diff
--- original +++ refactored @@ Host srcHost = mock(Host.class); - Host destHost = mock(Host.class); - when(destHost.getClusterId()).thenReturn(1L); + Host destHost = MockHost.createMockHost(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); @@
Original Test Code (click to expand)
@Test public void testMigrateWithinClusterFailure() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration within cluster didn't fail.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_6

Test Case Name: testMigrateAcrossClusterSuccess(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: srcHost

Suggested Diff
--- original +++ refactored @@ public void testMigrateAcrossClusterSuccess() throws Exception { - Host srcHost = mock(Host.class); + Host srcHost = MockHost.createMockHost(1L); Host destHost = mock(Host.class); - when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration across cluster isn't successful.", result.isSuccess()); }
Original Test Code (click to expand)
@Test public void testMigrateAcrossClusterSuccess() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration across cluster isn't successful.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_7

Test Case Name: testMigrateAcrossClusterSuccess(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: destHost

Suggested Diff
--- original +++ refactored @@ Host srcHost = mock(Host.class); - Host destHost = mock(Host.class); - when(destHost.getClusterId()).thenReturn(2L); + Host destHost = MockHost.createMockHost(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); @@
Original Test Code (click to expand)
@Test public void testMigrateAcrossClusterSuccess() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration across cluster isn't successful.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_8

Test Case Name: testMigrateAcrossClusterFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: srcHost

Suggested Diff
--- original +++ refactored @@ @Test public void testMigrateAcrossClusterFailure() throws Exception { - Host srcHost = mock(Host.class); + Host srcHost = MockHost.createMockHost(1L); Host destHost = mock(Host.class); - when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration across cluster didn't fail.", result.isSuccess()); } @@
Original Test Code (click to expand)
@Test public void testMigrateAcrossClusterFailure() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration across cluster didn't fail.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Test Case ID #cloudstack_Test_114_9

Test Case Name: testMigrateAcrossClusterFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: destHost

Suggested Diff
--- original +++ refactored @@ Host srcHost = mock(Host.class); - Host destHost = mock(Host.class); - when(destHost.getClusterId()).thenReturn(2L); + Host destHost = MockHost.createMockHost(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); @@
Original Test Code (click to expand)
@Test public void testMigrateAcrossClusterFailure() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration across cluster didn't fail.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
public class MockHost { public static Host createMockHost(long clusterId) { Host host = Mockito.mock(Host.class); when(host.getClusterId()).thenReturn(clusterId); return host; } }

Mock Clone Instance #cloudstack_MCI_115

Reusable Method

private static Host createMockHostWithHypervisorType(HypervisorType hypervisorType) { Host host = mock(Host.class); when(host.getHypervisorType()).thenReturn(hypervisorType); return host; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_115_1

Test Case Name: testStrategyHandlesVmwareHosts(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: srcHost

Suggested Diff
--- original +++ refactored @@ @Test public void testStrategyHandlesVmwareHosts() throws Exception { - Host srcHost = mock(Host.class); + Host srcHost = createMockHostWithHypervisorType(HypervisorType.VMware); Host destHost = mock(Host.class); - when(srcHost.getHypervisorType()).thenReturn(HypervisorType.VMware); when(destHost.getHypervisorType()).thenReturn(HypervisorType.VMware); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertTrue("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); } @@
Original Test Code (click to expand)
@Test public void testStrategyHandlesVmwareHosts() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getHypervisorType()).thenReturn(HypervisorType.VMware); when(destHost.getHypervisorType()).thenReturn(HypervisorType.VMware); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertTrue("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); }
Reusable Method for MCI (click to expand)
private static Host createMockHostWithHypervisorType(HypervisorType hypervisorType) { Host host = mock(Host.class); when(host.getHypervisorType()).thenReturn(hypervisorType); return host; }

Test Case ID #cloudstack_Test_115_2

Test Case Name: testStrategyHandlesVmwareHosts(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: destHost

Suggested Diff
--- original +++ refactored @@ Host srcHost = mock(Host.class); - Host destHost = mock(Host.class); - when(destHost.getHypervisorType()).thenReturn(HypervisorType.VMware); + Host destHost = createMockHostWithHypervisorType(HypervisorType.VMware); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertTrue("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); }
Original Test Code (click to expand)
@Test public void testStrategyHandlesVmwareHosts() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getHypervisorType()).thenReturn(HypervisorType.VMware); when(destHost.getHypervisorType()).thenReturn(HypervisorType.VMware); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertTrue("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); }
Reusable Method for MCI (click to expand)
private static Host createMockHostWithHypervisorType(HypervisorType hypervisorType) { Host host = mock(Host.class); when(host.getHypervisorType()).thenReturn(hypervisorType); return host; }

Test Case ID #cloudstack_Test_115_3

Test Case Name: testStrategyDoesnotHandlesNonVmwareHosts(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: srcHost

Suggested Diff
--- original +++ refactored @@ @Test public void testStrategyDoesnotHandlesNonVmwareHosts() throws Exception { - Host srcHost = mock(Host.class); Host destHost = mock(Host.class); - when(srcHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); + Host srcHost = createMockHostWithHypervisorType(HypervisorType.XenServer); when(destHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertFalse("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); } @@
Original Test Code (click to expand)
@Test public void testStrategyDoesnotHandlesNonVmwareHosts() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); when(destHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertFalse("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); }
Reusable Method for MCI (click to expand)
private static Host createMockHostWithHypervisorType(HypervisorType hypervisorType) { Host host = mock(Host.class); when(host.getHypervisorType()).thenReturn(hypervisorType); return host; }

Test Case ID #cloudstack_Test_115_4

Test Case Name: testStrategyDoesnotHandlesNonVmwareHosts(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: destHost

Suggested Diff
--- original +++ refactored @@ Host srcHost = mock(Host.class); - Host destHost = mock(Host.class); - when(srcHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); - when(destHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); + Host destHost = createMockHostWithHypervisorType(HypervisorType.XenServer); + when(srcHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertFalse("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); }
Original Test Code (click to expand)
@Test public void testStrategyDoesnotHandlesNonVmwareHosts() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); when(destHost.getHypervisorType()).thenReturn(HypervisorType.XenServer); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); StrategyPriority canHandle = strategy.canHandle(volumeMap, srcHost, destHost); assertFalse("The strategy is only supposed to handle vmware hosts", canHandle == StrategyPriority.HYPERVISOR); }
Reusable Method for MCI (click to expand)
private static Host createMockHostWithHypervisorType(HypervisorType hypervisorType) { Host host = mock(Host.class); when(host.getHypervisorType()).thenReturn(hypervisorType); return host; }

Mock Clone Instance #cloudstack_MCI_116

Reusable Method

public class MockStoragePoolHostDao { public static StoragePoolHostDao createMockStoragePoolHostDao() { StoragePoolHostDao storagePoolHostDao = Mockito.mock(StoragePoolHostDao.class); when(storagePoolHostDao.findByPoolHost(anyLong(), anyLong())).thenReturn(null); return storagePoolHostDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_116_1

Test Case Name: testAttachCluster(File: C:\Java_projects\Apache\cloudstack\plugins\storage\volume\default\src\test\java\org\apache\cloudstack\storage\datastore\lifecycle\CloudStackPrimaryDataStoreLifeCycleImplTest.java)

Mock Object Variable Name: storagePoolHostDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ when(info.getAvailableBytes()).thenReturn(0L); - when(storagePoolHostDao.findByPoolHost(anyLong(), anyLong())).thenReturn(null); when(primaryStoreDao.findById(anyLong())).thenReturn(storagePool); when(primaryStoreDao.update(anyLong(), Mockito.any(StoragePoolVO.class))).thenReturn(true); when(primaryDataStoreHelper.attachCluster(Mockito.any(DataStore.class))).thenReturn(null); @@
Original Test Code (click to expand)
@Before public void initMocks() { MockitoAnnotations.initMocks(this); List<HostVO> hostList = new ArrayList<HostVO>(); HostVO host1 = new HostVO(1L, "aa01", Host.Type.Routing, "192.168.1.1", "255.255.255.0", null, null, null, null, null, null, null, null, null, null, UUID.randomUUID().toString(), Status.Up, "1.0", null, null, 1L, null, 0, 0, "aa", 0, Storage.StoragePoolType.NetworkFilesystem); HostVO host2 = new HostVO(1L, "aa02", Host.Type.Routing, "192.168.1.1", "255.255.255.0", null, null, null, null, null, null, null, null, null, null, UUID.randomUUID().toString(), Status.Up, "1.0", null, null, 1L, null, 0, 0, "aa", 0, Storage.StoragePoolType.NetworkFilesystem); host1.setResourceState(ResourceState.Enabled); host2.setResourceState(ResourceState.Disabled); hostList.add(host1); hostList.add(host2); when(_dataStoreMgr.getDataStore(anyLong(), eq(DataStoreRole.Primary))).thenReturn(store); when(store.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(store.isShared()).thenReturn(true); when(store.getName()).thenReturn("newPool"); when(_dataStoreProviderMgr.getDataStoreProvider(anyString())).thenReturn(dataStoreProvider); when(dataStoreProvider.getName()).thenReturn("default"); ((StorageManagerImpl) storageMgr).registerHostListener("default", hostListener); when(_resourceMgr.listAllUpHosts(eq(Host.Type.Routing), anyLong(), anyLong(), anyLong())).thenReturn(hostList); when(agentMgr.easySend(anyLong(), Mockito.any(ModifyStoragePoolCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); when(answer.getPoolInfo()).thenReturn(info); when(info.getLocalPath()).thenReturn("/mnt/1"); when(info.getCapacityBytes()).thenReturn(0L); when(info.getAvailableBytes()).thenReturn(0L); when(storagePoolHostDao.findByPoolHost(anyLong(), anyLong())).thenReturn(null); when(primaryStoreDao.findById(anyLong())).thenReturn(storagePool); when(primaryStoreDao.update(anyLong(), Mockito.any(StoragePoolVO.class))).thenReturn(true); when(primaryDataStoreHelper.attachCluster(Mockito.any(DataStore.class))).thenReturn(null); } @Test public void testAttachCluster() throws Exception { _cloudStackPrimaryDataStoreLifeCycle.attachCluster(store, new ClusterScope(1L, 1L, 1L)); verify(storagePoolHostDao, times(2)).persist(Mockito.any(StoragePoolHostVO.class)); }
Reusable Method for MCI (click to expand)
public class MockStoragePoolHostDao { public static StoragePoolHostDao createMockStoragePoolHostDao() { StoragePoolHostDao storagePoolHostDao = Mockito.mock(StoragePoolHostDao.class); when(storagePoolHostDao.findByPoolHost(anyLong(), anyLong())).thenReturn(null); return storagePoolHostDao; } }

Test Case ID #cloudstack_Test_116_2

Test Case Name: testAttachZone(File: C:\Java_projects\Apache\cloudstack\plugins\storage\volume\scaleio\src\test\java\org\apache\cloudstack\storage\datastore\lifecycle\ScaleIOPrimaryDataStoreLifeCycleTest.java)

Mock Object Variable Name: storagePoolHostDao

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ when(agentMgr.easySend(anyLong(), Mockito.any(ModifyStoragePoolCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); - when(storagePoolHostDao.findByPoolHost(anyLong(), anyLong())).thenReturn(null); + storagePoolHostDao = MockStoragePoolHostDao.createMockStoragePoolHostDao(); when(hostDao.findById(1L)).thenReturn(host1); when(hostDao.findById(2L)).thenReturn(host2); when(dataStoreHelper.attachZone(Mockito.any(DataStore.class))).thenReturn(null); scaleIOPrimaryDataStoreLifeCycleTest.attachZone(dataStore, scope, Hypervisor.HypervisorType.KVM); verify(storageMgr, times(2)).connectHostToSharedPool(Mockito.any(Long.class), Mockito.any(Long.class)); verify(storagePoolHostDao, times(2)).persist(Mockito.any(StoragePoolHostVO.class)); @@
Original Test Code (click to expand)
@Test public void testAttachZone() throws Exception { final DataStore dataStore = mock(DataStore.class); when(dataStore.getId()).thenReturn(1L); PowerMockito.mockStatic(ScaleIOGatewayClient.class); ScaleIOGatewayClientImpl client = mock(ScaleIOGatewayClientImpl.class); when(ScaleIOGatewayClientConnectionPool.getInstance().getClient(1L, storagePoolDetailsDao)).thenReturn(client); when(client.haveConnectedSdcs()).thenReturn(true); final ZoneScope scope = new ZoneScope(1L); List<HostVO> hostList = new ArrayList<HostVO>(); HostVO host1 = new HostVO(1L, "host01", Host.Type.Routing, "192.168.1.1", "255.255.255.0", null, null, null, null, null, null, null, null, null, null, UUID.randomUUID().toString(), Status.Up, "1.0", null, null, 1L, null, 0, 0, "aa", 0, Storage.StoragePoolType.PowerFlex); HostVO host2 = new HostVO(2L, "host02", Host.Type.Routing, "192.168.1.2", "255.255.255.0", null, null, null, null, null, null, null, null, null, null, UUID.randomUUID().toString(), Status.Up, "1.0", null, null, 1L, null, 0, 0, "aa", 0, Storage.StoragePoolType.PowerFlex); host1.setResourceState(ResourceState.Enabled); host2.setResourceState(ResourceState.Enabled); hostList.add(host1); hostList.add(host2); when(resourceManager.listAllUpAndEnabledHostsInOneZoneByHypervisor(Hypervisor.HypervisorType.KVM, 1L)).thenReturn(hostList); when(dataStoreMgr.getDataStore(anyLong(), eq(DataStoreRole.Primary))).thenReturn(store); when(store.getId()).thenReturn(1L); when(store.getPoolType()).thenReturn(Storage.StoragePoolType.PowerFlex); when(store.isShared()).thenReturn(true); when(store.getName()).thenReturn("ScaleIOPool"); when(store.getStorageProviderName()).thenReturn(ScaleIOUtil.PROVIDER_NAME); when(dataStoreProviderMgr.getDataStoreProvider(ScaleIOUtil.PROVIDER_NAME)).thenReturn(dataStoreProvider); when(dataStoreProvider.getName()).thenReturn(ScaleIOUtil.PROVIDER_NAME); storageMgr.registerHostListener(ScaleIOUtil.PROVIDER_NAME, hostListener); when(agentMgr.easySend(anyLong(), Mockito.any(ModifyStoragePoolCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); when(storagePoolHostDao.findByPoolHost(anyLong(), anyLong())).thenReturn(null); when(hostDao.findById(1L)).thenReturn(host1); when(hostDao.findById(2L)).thenReturn(host2); when(dataStoreHelper.attachZone(Mockito.any(DataStore.class))).thenReturn(null); scaleIOPrimaryDataStoreLifeCycleTest.attachZone(dataStore, scope, Hypervisor.HypervisorType.KVM); verify(storageMgr, times(2)).connectHostToSharedPool(Mockito.any(Long.class), Mockito.any(Long.class)); verify(storagePoolHostDao, times(2)).persist(Mockito.any(StoragePoolHostVO.class)); }
Reusable Method for MCI (click to expand)
public class MockStoragePoolHostDao { public static StoragePoolHostDao createMockStoragePoolHostDao() { StoragePoolHostDao storagePoolHostDao = Mockito.mock(StoragePoolHostDao.class); when(storagePoolHostDao.findByPoolHost(anyLong(), anyLong())).thenReturn(null); return storagePoolHostDao; } }

Mock Clone Instance #cloudstack_MCI_117

Reusable Method

private static UserTwoFactorAuthenticator createMockUserTwoFactorAuthenticator(UserAccountVO userAccount, String setup2FAKeyReturn) { UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn(setup2FAKeyReturn); return totpProvider; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_117_1

Test Case Name: testEnableUserTwoFactorAuthenticationWhenProviderNameIsNullExpectedDefaultProviderTOTP(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: totpProvider

Suggested Diff
--- original +++ refactored @@ Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); - UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); + UserTwoFactorAuthenticator totpProvider = createMockUserTwoFactorAuthenticator(userAccount, "EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; - Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, null); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); @@
Original Test Code (click to expand)
@Test public void testEnableUserTwoFactorAuthenticationWhenProviderNameIsNullExpectedDefaultProviderTOTP() { Long userId = 1L; UserAccountVO userAccount = Mockito.mock(UserAccountVO.class); UserVO userVO = Mockito.mock(UserVO.class); Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount); Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO); Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, null); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); }
Reusable Method for MCI (click to expand)
private static UserTwoFactorAuthenticator createMockUserTwoFactorAuthenticator(UserAccountVO userAccount, String setup2FAKeyReturn) { UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn(setup2FAKeyReturn); return totpProvider; }

Test Case ID #cloudstack_Test_117_2

Test Case Name: testEnableUserTwoFactorAuthentication(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: totpProvider

Suggested Diff
--- original +++ refactored @@ Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); - UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); + UserTwoFactorAuthenticator totpProvider = createMockUserTwoFactorAuthenticator(userAccount, "EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; - Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, "totp"); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); @@
Original Test Code (click to expand)
@Test public void testEnableUserTwoFactorAuthentication() { Long userId = 1L; UserAccountVO userAccount = Mockito.mock(UserAccountVO.class); UserVO userVO = Mockito.mock(UserVO.class); Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount); Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO); Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, "totp"); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); }
Reusable Method for MCI (click to expand)
private static UserTwoFactorAuthenticator createMockUserTwoFactorAuthenticator(UserAccountVO userAccount, String setup2FAKeyReturn) { UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn(setup2FAKeyReturn); return totpProvider; }

Mock Clone Instance #cloudstack_MCI_118

Reusable Method

private static Counter createMockCounter(Counter.Source source) { Counter counterMock = Mockito.mock(Counter.class); when(counterMock.getSource()).thenReturn(source); return counterMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_118_1

Test Case Name: testValidateAutoScaleCounters(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterCpuMock

Suggested Diff
--- original +++ refactored @@ @Test public void testValidateAutoScaleCounters() { - Counter counterCpuMock = Mockito.mock(Counter.class); - when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); + Counter counterCpuMock = createMockCounter(Counter.Source.CPU); Counter counterMemoryMock = Mockito.mock(Counter.class); when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Memory), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); } @@
Original Test Code (click to expand)
@Test public void testValidateAutoScaleCounters() { Counter counterCpuMock = Mockito.mock(Counter.class); when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); Counter counterMemoryMock = Mockito.mock(Counter.class); when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Memory), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); }
Reusable Method for MCI (click to expand)
private static Counter createMockCounter(Counter.Source source) { Counter counterMock = Mockito.mock(Counter.class); when(counterMock.getSource()).thenReturn(source); return counterMock; }

Test Case ID #cloudstack_Test_118_2

Test Case Name: testValidateAutoScaleCounters(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterMemoryMock

Suggested Diff
--- original +++ refactored @@ Counter counterCpuMock = Mockito.mock(Counter.class); when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); - Counter counterMemoryMock = Mockito.mock(Counter.class); - when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); + Counter counterMemoryMock = createMockCounter(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Memory), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); @@
Original Test Code (click to expand)
@Test public void testValidateAutoScaleCounters() { Counter counterCpuMock = Mockito.mock(Counter.class); when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); Counter counterMemoryMock = Mockito.mock(Counter.class); when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Memory), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); }
Reusable Method for MCI (click to expand)
private static Counter createMockCounter(Counter.Source source) { Counter counterMock = Mockito.mock(Counter.class); when(counterMock.getSource()).thenReturn(source); return counterMock; }

Test Case ID #cloudstack_Test_118_3

Test Case Name: testValidateAutoScaleCountersFail(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterCpuMock

Suggested Diff
--- original +++ refactored @@ public void testValidateAutoScaleCountersFail() { - Counter counterCpuMock = Mockito.mock(Counter.class); - when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); + Counter counterCpuMock = createMockCounter(Counter.Source.CPU); Counter counterMemoryMock = Mockito.mock(Counter.class); when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testValidateAutoScaleCountersFail() { Counter counterCpuMock = Mockito.mock(Counter.class); when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); Counter counterMemoryMock = Mockito.mock(Counter.class); when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); }
Reusable Method for MCI (click to expand)
private static Counter createMockCounter(Counter.Source source) { Counter counterMock = Mockito.mock(Counter.class); when(counterMock.getSource()).thenReturn(source); return counterMock; }

Test Case ID #cloudstack_Test_118_4

Test Case Name: testValidateAutoScaleCountersFail(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterMemoryMock

Suggested Diff
@@ Counter counterCpuMock = Mockito.mock(Counter.class); when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); - Counter counterMemoryMock = Mockito.mock(Counter.class); - when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); + Counter counterMemoryMock = createMockCounter(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testValidateAutoScaleCountersFail() { Counter counterCpuMock = Mockito.mock(Counter.class); when(counterCpuMock.getSource()).thenReturn(Counter.Source.CPU); Counter counterMemoryMock = Mockito.mock(Counter.class); when(counterMemoryMock.getSource()).thenReturn(Counter.Source.MEMORY); List<Counter> counters = Arrays.asList(counterCpuMock, counterMemoryMock); List<AutoScaleCounter> supportedAutoScaleCounters = Arrays.asList(new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu), new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.VirtualRouter)); PowerMockito.doReturn(supportedAutoScaleCounters).when(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); autoScaleManagerImplSpy.validateAutoScaleCounters(networkId, counters, new ArrayList<>()); Mockito.verify(autoScaleManagerImplSpy).getSupportedAutoScaleCounters(networkId); }
Reusable Method for MCI (click to expand)
private static Counter createMockCounter(Counter.Source source) { Counter counterMock = Mockito.mock(Counter.class); when(counterMock.getSource()).thenReturn(source); return counterMock; }

Mock Clone Instance #cloudstack_MCI_119

Reusable Method

// === Declare in class scope === private ExcludeList avoids; // === Add to @BeforeEach method === @BeforeEach public void setUp() { avoids = mock(ExcludeList.class); } // === Replace local variable in test with === avoids

The refactoring details in each test cases


Test Case ID #cloudstack_Test_119_1

Test Case Name: checkClusterReorderingBasedOnImplicitHostTags(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: avoids

Suggested Diff
@@ @Test public void checkClusterReorderingBasedOnImplicitHostTags() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); - ExcludeList avoids = mock(ExcludeList.class); + // removed local mock; replaced with global field `avoids` initializeForTest(vmProfile, plan, avoids); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); List<Long> reorderedClusterList = new ArrayList<Long>(); reorderedClusterList.add(4L); reorderedClusterList.add(3L); reorderedClusterList.add(1L); reorderedClusterList.add(5L); reorderedClusterList.add(6L); reorderedClusterList.add(2L); assertTrue("Reordered cluster list is not honoring the implict host tags", (clusterList.equals(reorderedClusterList))); }
Original Test Code (click to expand)
@Test public void checkClusterReorderingBasedOnImplicitHostTags() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); List<Long> reorderedClusterList = new ArrayList<Long>(); reorderedClusterList.add(4L); reorderedClusterList.add(3L); reorderedClusterList.add(1L); reorderedClusterList.add(5L); reorderedClusterList.add(6L); reorderedClusterList.add(2L); assertTrue("Reordered cluster list is not honoring the implict host tags", (clusterList.equals(reorderedClusterList))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ExcludeList avoids; // === Add to @BeforeEach method === @BeforeEach public void setUp() { avoids = mock(ExcludeList.class); } // === Replace local variable in test with === avoids

Test Case ID #cloudstack_Test_119_2

Test Case Name: checkClusterReorderingForDeployVMWithThresholdCheckDisabled(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: avoids

Suggested Diff
@@ @Test public void checkClusterReorderingForDeployVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); - ExcludeList avoids = mock(ExcludeList.class); + // removed local mock; replaced with global field `avoids` initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); Map<String, String> details = new HashMap<String, String>(); details.put("deployvm", "true"); when(vmDetailsDao.listDetailsKeyPairs(vmProfile.getVirtualMachine().getId())).thenReturn(details); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters exceeding threshold", (!clusterList.containsAll(clustersCrossingThreshold))); }
Original Test Code (click to expand)
@Test public void checkClusterReorderingForDeployVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); Map<String, String> details = new HashMap<String, String>(); details.put("deployvm", "true"); when(vmDetailsDao.listDetailsKeyPairs(vmProfile.getVirtualMachine().getId())).thenReturn(details); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters exceeding threshold", (!clusterList.containsAll(clustersCrossingThreshold))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ExcludeList avoids; // === Add to @BeforeEach method === @BeforeEach public void setUp() { avoids = mock(ExcludeList.class); } // === Replace local variable in test with === avoids

Test Case ID #cloudstack_Test_119_3

Test Case Name: checkClusterListBasedOnHostTag(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: avoids

Suggested Diff
@@ @Test public void checkClusterListBasedOnHostTag() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); - ExcludeList avoids = mock(ExcludeList.class); + // removed local mock; replaced with global field `avoids` initializeForTest(vmProfile, plan, avoids); List<Long> matchingClusters = initializeForClusterListBasedOnHostTag(vmProfile.getServiceOffering()); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters which has hosts with specified host tag on offering", (clusterList.containsAll(matchingClusters))); assertTrue("Reordered cluster list does not have clusters which don't have hosts with matching host tag on offering", (!clusterList.contains(2L))); }
Original Test Code (click to expand)
@Test public void checkClusterListBasedOnHostTag() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> matchingClusters = initializeForClusterListBasedOnHostTag(vmProfile.getServiceOffering()); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters which has hosts with specified host tag on offering", (clusterList.containsAll(matchingClusters))); assertTrue("Reordered cluster list does not have clusters which don't have hosts with matching host tag on offering", (!clusterList.contains(2L))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ExcludeList avoids; // === Add to @BeforeEach method === @BeforeEach public void setUp() { avoids = mock(ExcludeList.class); } // === Replace local variable in test with === avoids

Test Case ID #cloudstack_Test_119_4

Test Case Name: checkClusterReorderingForStartVMWithThresholdCheckDisabled(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: avoids

Suggested Diff
@@ @Test public void checkClusterReorderingForStartVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); - ExcludeList avoids = mock(ExcludeList.class); + // removed local mock; replaced with global field `avoids` initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list does not have clusters exceeding threshold", (clusterList.containsAll(clustersCrossingThreshold))); }
Original Test Code (click to expand)
@Test public void checkClusterReorderingForStartVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list does not have clusters exceeding threshold", (clusterList.containsAll(clustersCrossingThreshold))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ExcludeList avoids; // === Add to @BeforeEach method === @BeforeEach public void setUp() { avoids = mock(ExcludeList.class); } // === Replace local variable in test with === avoids

Mock Clone Instance #cloudstack_MCI_120

Reusable Method

public class MockConfigurationDao { /** * Creates a mock ConfigurationDao with stubbing for getValue(Config.NetworkLBHaproxyStatsVisbility.key()). * @param networkLBHaproxyStatsVisibilityReturn the value to return for getValue(Config.NetworkLBHaproxyStatsVisbility.key()) * @return a configured mock ConfigurationDao */ public static ConfigurationDao createMockConfigurationDao(String networkLBHaproxyStatsVisibilityReturn) { ConfigurationDao configDao = mock(ConfigurationDao.class); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn(networkLBHaproxyStatsVisibilityReturn); return configDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_120_1

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: configDao

Suggested Diff
@@ when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); - when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); + configDao = MockConfigurationDao.createMockConfigurationDao("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true);
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockConfigurationDao { /** * Creates a mock ConfigurationDao with stubbing for getValue(Config.NetworkLBHaproxyStatsVisbility.key()). * @param networkLBHaproxyStatsVisibilityReturn the value to return for getValue(Config.NetworkLBHaproxyStatsVisbility.key()) * @return a configured mock ConfigurationDao */ public static ConfigurationDao createMockConfigurationDao(String networkLBHaproxyStatsVisibilityReturn) { ConfigurationDao configDao = mock(ConfigurationDao.class); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn(networkLBHaproxyStatsVisibilityReturn); return configDao; } }

Test Case ID #cloudstack_Test_120_2

Test Case Name: applyLBRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: configDao

Suggested Diff
--- Original +++ Refactored @@ when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); - when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); + configDao = MockConfigurationDao.createMockConfigurationDao("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockConfigurationDao { /** * Creates a mock ConfigurationDao with stubbing for getValue(Config.NetworkLBHaproxyStatsVisbility.key()). * @param networkLBHaproxyStatsVisibilityReturn the value to return for getValue(Config.NetworkLBHaproxyStatsVisbility.key()) * @return a configured mock ConfigurationDao */ public static ConfigurationDao createMockConfigurationDao(String networkLBHaproxyStatsVisibilityReturn) { ConfigurationDao configDao = mock(ConfigurationDao.class); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn(networkLBHaproxyStatsVisibilityReturn); return configDao; } }

Test Case ID #cloudstack_Test_120_3

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: configDao

Suggested Diff
@@ when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); - when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); + configDao = MockConfigurationDao.createMockConfigurationDao("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO);
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
public class MockConfigurationDao { /** * Creates a mock ConfigurationDao with stubbing for getValue(Config.NetworkLBHaproxyStatsVisbility.key()). * @param networkLBHaproxyStatsVisibilityReturn the value to return for getValue(Config.NetworkLBHaproxyStatsVisbility.key()) * @return a configured mock ConfigurationDao */ public static ConfigurationDao createMockConfigurationDao(String networkLBHaproxyStatsVisibilityReturn) { ConfigurationDao configDao = mock(ConfigurationDao.class); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn(networkLBHaproxyStatsVisibilityReturn); return configDao; } }

Mock Clone Instance #cloudstack_MCI_121

Reusable Method

private static DataObject createMockDataObject(DataStore dataStore) { DataObject dataObject = mock(DataObject.class); when(dataObject.getDataStore()).thenReturn(dataStore); return dataObject; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_121_1

Test Case Name: testMixZonePrimaryStorages(File: C:\Java_projects\Apache\cloudstack\engine\storage\integration-test\src\test\java\org\apache\cloudstack\storage\test\EndpointSelectorTest.java)

Mock Object Variable Name: srcObj

Suggested Diff
--- original +++ refactored @@ when(destStore.getId()).thenReturn(destStoreId); - DataObject srcObj = mock(DataObject.class); - DataObject destObj = mock(DataObject.class); - when(srcObj.getDataStore()).thenReturn(srcStore); + DataObject srcObj = createMockDataObject(srcStore); + DataObject destObj = mock(DataObject.class); when(destObj.getDataStore()).thenReturn(destStore); EndPoint ep = endPointSelector.select(srcObj, destObj); @@
Original Test Code (click to expand)
@Test public void testMixZonePrimaryStorages() { Long srcStoreId = null; Long destStoreId = imageStore.getId(); DataStore store = createPrimaryDataStore(ScopeType.ZONE); srcStoreId = store.getId(); HostVO host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.ZONE); host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); Long xenStoreId = null; store = createPrimaryDataStore(ScopeType.CLUSTER); xenStoreId = store.getId(); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.CLUSTER); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); ZoneScope srcScope = new ZoneScope(dcId); DataStore srcStore = mock(DataStore.class); DataStore destStore = mock(DataStore.class); when(srcStore.getScope()).thenReturn(srcScope); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getId()).thenReturn(srcStoreId); when(destStore.getScope()).thenReturn(srcScope); when(destStore.getRole()).thenReturn(DataStoreRole.Image); when(destStore.getId()).thenReturn(destStoreId); DataObject srcObj = mock(DataObject.class); DataObject destObj = mock(DataObject.class); when(srcObj.getDataStore()).thenReturn(srcStore); when(destObj.getDataStore()).thenReturn(destStore); EndPoint ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); Long hostId = ep.getId(); HostVO newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); when(srcStore.getRole()).thenReturn(DataStoreRole.Image); when(srcStore.getId()).thenReturn(destStoreId); when(destStore.getId()).thenReturn(srcStoreId); when(destStore.getRole()).thenReturn(DataStoreRole.Primary); ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); hostId = ep.getId(); newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); ClusterScope clusterScope = new ClusterScope(clusterId, podId, dcId); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getScope()).thenReturn(clusterScope); when(srcStore.getId()).thenReturn(xenStoreId); ep = endPointSelector.select(srcStore); Assert.assertTrue(ep != null); newHost = hostDao.findById(ep.getId()); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.XenServer); }
Reusable Method for MCI (click to expand)
private static DataObject createMockDataObject(DataStore dataStore) { DataObject dataObject = mock(DataObject.class); when(dataObject.getDataStore()).thenReturn(dataStore); return dataObject; }

Test Case ID #cloudstack_Test_121_2

Test Case Name: testMixZonePrimaryStorages(File: C:\Java_projects\Apache\cloudstack\engine\storage\integration-test\src\test\java\org\apache\cloudstack\storage\test\EndpointSelectorTest.java)

Mock Object Variable Name: destObj

Suggested Diff
@@ DataObject srcObj = mock(DataObject.class); - DataObject destObj = mock(DataObject.class); - when(srcObj.getDataStore()).thenReturn(srcStore); - when(destObj.getDataStore()).thenReturn(destStore); + DataObject destObj = createMockDataObject(destStore); + when(srcObj.getDataStore()).thenReturn(srcStore); EndPoint ep = endPointSelector.select(srcObj, destObj);
Original Test Code (click to expand)
@Test public void testMixZonePrimaryStorages() { Long srcStoreId = null; Long destStoreId = imageStore.getId(); DataStore store = createPrimaryDataStore(ScopeType.ZONE); srcStoreId = store.getId(); HostVO host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.ZONE); host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); Long xenStoreId = null; store = createPrimaryDataStore(ScopeType.CLUSTER); xenStoreId = store.getId(); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.CLUSTER); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); ZoneScope srcScope = new ZoneScope(dcId); DataStore srcStore = mock(DataStore.class); DataStore destStore = mock(DataStore.class); when(srcStore.getScope()).thenReturn(srcScope); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getId()).thenReturn(srcStoreId); when(destStore.getScope()).thenReturn(srcScope); when(destStore.getRole()).thenReturn(DataStoreRole.Image); when(destStore.getId()).thenReturn(destStoreId); DataObject srcObj = mock(DataObject.class); DataObject destObj = mock(DataObject.class); when(srcObj.getDataStore()).thenReturn(srcStore); when(destObj.getDataStore()).thenReturn(destStore); EndPoint ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); Long hostId = ep.getId(); HostVO newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); when(srcStore.getRole()).thenReturn(DataStoreRole.Image); when(srcStore.getId()).thenReturn(destStoreId); when(destStore.getId()).thenReturn(srcStoreId); when(destStore.getRole()).thenReturn(DataStoreRole.Primary); ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); hostId = ep.getId(); newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); ClusterScope clusterScope = new ClusterScope(clusterId, podId, dcId); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getScope()).thenReturn(clusterScope); when(srcStore.getId()).thenReturn(xenStoreId); ep = endPointSelector.select(srcStore); Assert.assertTrue(ep != null); newHost = hostDao.findById(ep.getId()); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.XenServer); }
Reusable Method for MCI (click to expand)
private static DataObject createMockDataObject(DataStore dataStore) { DataObject dataObject = mock(DataObject.class); when(dataObject.getDataStore()).thenReturn(dataStore); return dataObject; }

Mock Clone Instance #cloudstack_MCI_122

Reusable Method

public class MockStorageLayer { public static StorageLayer createMockStorageLayer(long sizeReturn) { StorageLayer mockStorageLayer = Mockito.mock(StorageLayer.class); Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(sizeReturn); return mockStorageLayer; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_122_1

Test Case Name: testProcessWhenVirtualSizeThrowsException(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\OVAProcessorTest.java)

Mock Object Variable Name: mockStorageLayer

Suggested Diff
@@ String templatePath = "/tmp"; String templateName = "template"; - Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); - Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000l); + mockStorageLayer = MockStorageLayer.createMockStorageLayer(1000l); Mockito.doThrow(new InternalErrorException("virtual size calculation failed")).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); Script mockScript = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); PowerMockito.when(mockScript.execute()).thenReturn(null); processor.process(templatePath, null, templateName); @@
Original Test Code (click to expand)
@Test(expected = InternalErrorException.class) public void testProcessWhenVirtualSizeThrowsException() throws Exception { String templatePath = "/tmp"; String templateName = "template"; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000l); Mockito.doThrow(new InternalErrorException("virtual size calculation failed")).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); Script mockScript = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); PowerMockito.when(mockScript.execute()).thenReturn(null); processor.process(templatePath, null, templateName); } @Before public void setUp() throws Exception { processor = PowerMockito.spy(new OVAProcessor()); Map<String, Object> params = new HashMap<String, Object>(); params.put(StorageLayer.InstanceConfigKey, mockStorageLayer); processor.configure("OVA Processor", params); }
Reusable Method for MCI (click to expand)
public class MockStorageLayer { public static StorageLayer createMockStorageLayer(long sizeReturn) { StorageLayer mockStorageLayer = Mockito.mock(StorageLayer.class); Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(sizeReturn); return mockStorageLayer; } }

Test Case ID #cloudstack_Test_122_2

Test Case Name: testProcess(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\OVAProcessorTest.java)

Mock Object Variable Name: mockStorageLayer

Suggested Diff
--- Original +++ Refactored @@ String templatePath = "/tmp"; String templateName = "template"; long virtualSize = 2000; long actualSize = 1000; - Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); - Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); + mockStorageLayer = MockStorageLayer.createMockStorageLayer(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); Script mockScript = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); PowerMockito.when(mockScript.execute()).thenReturn(null); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.OVA, info.format); Assert.assertEquals("actual size:", actualSize, info.size); Assert.assertEquals("virtual size:", virtualSize, info.virtualSize); Assert.assertEquals("template name:", templateName + ".ova", info.filename); @@
Original Test Code (click to expand)
@Before public void setUp() throws Exception { processor = PowerMockito.spy(new OVAProcessor()); Map<String, Object> params = new HashMap<String, Object>(); params.put(StorageLayer.InstanceConfigKey, mockStorageLayer); processor.configure("OVA Processor", params); } @Test public void testProcess() throws Exception { String templatePath = "/tmp"; String templateName = "template"; long virtualSize = 2000; long actualSize = 1000; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString()); Script mockScript = Mockito.mock(Script.class); PowerMockito.whenNew(Script.class).withAnyArguments().thenReturn(mockScript); PowerMockito.when(mockScript.execute()).thenReturn(null); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.OVA, info.format); Assert.assertEquals("actual size:", actualSize, info.size); Assert.assertEquals("virtual size:", virtualSize, info.virtualSize); Assert.assertEquals("template name:", templateName + ".ova", info.filename); }
Reusable Method for MCI (click to expand)
public class MockStorageLayer { public static StorageLayer createMockStorageLayer(long sizeReturn) { StorageLayer mockStorageLayer = Mockito.mock(StorageLayer.class); Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(sizeReturn); return mockStorageLayer; } }

Test Case ID #cloudstack_Test_122_3

Test Case Name: testProcessWhenVirtualSizeThrowsException(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\QCOW2ProcessorTest.java)

Mock Object Variable Name: mockStorageLayer

Suggested Diff
@@ String templatePath = "/tmp"; String templateName = "template"; - Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); File mockFile = Mockito.mock(File.class); + mockStorageLayer = MockStorageLayer.createMockStorageLayer(1000L); Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); - Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000L); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); processor.process(templatePath, null, templateName); @@
Original Test Code (click to expand)
@Test(expected = InternalErrorException.class) public void testProcessWhenVirtualSizeThrowsException() throws Exception { String templatePath = "/tmp"; String templateName = "template"; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); File mockFile = Mockito.mock(File.class); Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000L); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); processor.process(templatePath, null, templateName); } @Before public void setUp() throws Exception { processor = Mockito.spy(new QCOW2Processor()); Map<String, Object> params = new HashMap<String, Object>(); params.put(StorageLayer.InstanceConfigKey, mockStorageLayer); processor.configure("VHD Processor", params); }
Reusable Method for MCI (click to expand)
public class MockStorageLayer { public static StorageLayer createMockStorageLayer(long sizeReturn) { StorageLayer mockStorageLayer = Mockito.mock(StorageLayer.class); Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(sizeReturn); return mockStorageLayer; } }

Test Case ID #cloudstack_Test_122_4

Test Case Name: testProcess(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\QCOW2ProcessorTest.java)

Mock Object Variable Name: mockStorageLayer

Suggested Diff
@@ long virtualSize = 2000; long actualSize = 1000; - Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); File mockFile = Mockito.mock(File.class); - Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); - Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); + mockStorageLayer = MockStorageLayer.createMockStorageLayer(actualSize); + Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.QCOW2, info.format); @@
Original Test Code (click to expand)
@Test public void testProcess() throws Exception { String templatePath = "/tmp"; String templateName = "template"; long virtualSize = 2000; long actualSize = 1000; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); File mockFile = Mockito.mock(File.class); Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.QCOW2, info.format); Assert.assertEquals(actualSize, info.size); Assert.assertEquals(virtualSize, info.virtualSize); Assert.assertEquals(templateName + ".qcow2", info.filename); } @Before public void setUp() throws Exception { processor = Mockito.spy(new QCOW2Processor()); Map<String, Object> params = new HashMap<String, Object>(); params.put(StorageLayer.InstanceConfigKey, mockStorageLayer); processor.configure("VHD Processor", params); }
Reusable Method for MCI (click to expand)
public class MockStorageLayer { public static StorageLayer createMockStorageLayer(long sizeReturn) { StorageLayer mockStorageLayer = Mockito.mock(StorageLayer.class); Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(sizeReturn); return mockStorageLayer; } }

Test Case ID #cloudstack_Test_122_5

Test Case Name: testProcessWhenVirtualSizeThrowsException(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\VhdProcessorTest.java)

Mock Object Variable Name: mockStorageLayer

Suggested Diff
@@ String templatePath = "/tmp"; String templateName = "template"; - Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); File mockFile = Mockito.mock(File.class); - Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); - Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000L); + mockStorageLayer = MockStorageLayer.createMockStorageLayer(1000L); + Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); processor.process(templatePath, null, templateName); @@
Original Test Code (click to expand)
@Test(expected = InternalErrorException.class) public void testProcessWhenVirtualSizeThrowsException() throws Exception { String templatePath = "/tmp"; String templateName = "template"; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); File mockFile = Mockito.mock(File.class); Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(1000L); Mockito.doThrow(new IOException("virtual size calculation failed")).when(processor).getTemplateVirtualSize((File) Mockito.any()); processor.process(templatePath, null, templateName); } @Before public void setUp() throws Exception { processor = Mockito.spy(new VhdProcessor()); Map<String, Object> params = new HashMap<String, Object>(); params.put(StorageLayer.InstanceConfigKey, mockStorageLayer); processor.configure("VHD Processor", params); }
Reusable Method for MCI (click to expand)
public class MockStorageLayer { public static StorageLayer createMockStorageLayer(long sizeReturn) { StorageLayer mockStorageLayer = Mockito.mock(StorageLayer.class); Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(sizeReturn); return mockStorageLayer; } }

Test Case ID #cloudstack_Test_122_6

Test Case Name: testProcess(File: C:\Java_projects\Apache\cloudstack\core\src\test\java\com\cloud\storage\template\VhdProcessorTest.java)

Mock Object Variable Name: mockStorageLayer

Suggested Diff
@@ long virtualSize = 2000; long actualSize = 1000; - Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); - File mockFile = Mockito.mock(File.class); - Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); - Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); + mockStorageLayer = MockStorageLayer.createMockStorageLayer(actualSize); + File mockFile = Mockito.mock(File.class); + Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.VHD, info.format); @@
Original Test Code (click to expand)
@Test public void testProcess() throws Exception { String templatePath = "/tmp"; String templateName = "template"; long virtualSize = 2000; long actualSize = 1000; Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); File mockFile = Mockito.mock(File.class); Mockito.when(mockStorageLayer.getFile(Mockito.anyString())).thenReturn(mockFile); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize); Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize((File) Mockito.any()); Processor.FormatInfo info = processor.process(templatePath, null, templateName); Assert.assertEquals(Storage.ImageFormat.VHD, info.format); Assert.assertEquals(actualSize, info.size); Assert.assertEquals(virtualSize, info.virtualSize); Assert.assertEquals(templateName + ".vhd", info.filename); } @Before public void setUp() throws Exception { processor = Mockito.spy(new VhdProcessor()); Map<String, Object> params = new HashMap<String, Object>(); params.put(StorageLayer.InstanceConfigKey, mockStorageLayer); processor.configure("VHD Processor", params); }
Reusable Method for MCI (click to expand)
public class MockStorageLayer { public static StorageLayer createMockStorageLayer(long sizeReturn) { StorageLayer mockStorageLayer = Mockito.mock(StorageLayer.class); Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true); Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(sizeReturn); return mockStorageLayer; } }

Mock Clone Instance #cloudstack_MCI_123

Reusable Method

// === Declare in class scope === private Date startDate; private Date endDate; // === Add to @BeforeEach method === @BeforeEach public void setUp() { startDate = mock(Date.class); endDate = mock(Date.class); } // === Replace local variable in test with === startDate; endDate;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_123_1

Test Case Name: searchForVmMetricsStatsInternalTestWithAPopulatedListOfVms(File: C:\Java_projects\Apache\cloudstack\plugins\metrics\src\test\java\org\apache\cloudstack\metrics\MetricsServiceImplTest.java)

Mock Object Variable Name: startDate

Suggested Diff
@@ expected.put(fakeVmId1, new ArrayList<VmStatsVO>()); - Date startDate = Mockito.mock(Date.class); + // Cannot refactor mock `startDate`: ambiguous mapping or multiple mocks in one statement Date endDate = Mockito.mock(Date.class); Map<Long, List<VmStatsVO>> result = spy.searchForVmMetricsStatsInternal(startDate, endDate, Arrays.asList(userVmVOMock));
Original Test Code (click to expand)
@Test public void searchForVmMetricsStatsInternalTestWithAPopulatedListOfVms() { Mockito.doNothing().when(spy).validateDateParams(Mockito.any(), Mockito.any()); Mockito.doReturn(new ArrayList<VmStatsVO>()).when(spy).findVmStatsAccordingToDateParams(Mockito.anyLong(), Mockito.any(), Mockito.any()); Mockito.doReturn(fakeVmId1).when(userVmVOMock).getId(); Map<Long, List<VmStatsVO>> expected = new HashMap<Long, List<VmStatsVO>>(); expected.put(fakeVmId1, new ArrayList<VmStatsVO>()); Date startDate = Mockito.mock(Date.class); Date endDate = Mockito.mock(Date.class); Map<Long, List<VmStatsVO>> result = spy.searchForVmMetricsStatsInternal(startDate, endDate, Arrays.asList(userVmVOMock)); Mockito.verify(userVmVOMock).getId(); Mockito.verify(spy).findVmStatsAccordingToDateParams(Mockito.anyLong(), Mockito.any(), Mockito.any()); Assert.assertEquals(expected, result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Date startDate; private Date endDate; // === Add to @BeforeEach method === @BeforeEach public void setUp() { startDate = mock(Date.class); endDate = mock(Date.class); } // === Replace local variable in test with === startDate; endDate;

Test Case ID #cloudstack_Test_123_2

Test Case Name: searchForVmMetricsStatsInternalTestWithAnEmptyListOfVms(File: C:\Java_projects\Apache\cloudstack\plugins\metrics\src\test\java\org\apache\cloudstack\metrics\MetricsServiceImplTest.java)

Mock Object Variable Name: startDate

Suggested Diff
@@ + // Cannot refactor mock `startDate`: ambiguous or invalid new variable name mapping
Original Test Code (click to expand)
@Test public void searchForVmMetricsStatsInternalTestWithAnEmptyListOfVms() { Mockito.doNothing().when(spy).validateDateParams(Mockito.any(), Mockito.any()); Map<Long, List<VmStatsVO>> expected = new HashMap<Long, List<VmStatsVO>>(); Date startDate = Mockito.mock(Date.class); Date endDate = Mockito.mock(Date.class); Map<Long, List<VmStatsVO>> result = spy.searchForVmMetricsStatsInternal(startDate, endDate, new ArrayList<UserVmVO>()); Mockito.verify(userVmVOMock, Mockito.never()).getId(); Mockito.verify(spy, Mockito.never()).findVmStatsAccordingToDateParams(Mockito.anyLong(), Mockito.any(), Mockito.any()); Assert.assertEquals(expected, result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Date startDate; private Date endDate; // === Add to @BeforeEach method === @BeforeEach public void setUp() { startDate = mock(Date.class); endDate = mock(Date.class); } // === Replace local variable in test with === startDate; endDate;

Mock Clone Instance #cloudstack_MCI_124

Reusable Method

// === Declare in class scope === private AutoScaleVmProfileTO profileTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileTO = Mockito.mock(AutoScaleVmProfileTO.class); } // === Replace local variable in test with === profileTO;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_124_1

Test Case Name: isNativeTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: profileTO

Suggested Diff
@@ @Test public void isNativeTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); - AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + // removed local mock; replaced with global field `profileTO` when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); }
Original Test Code (click to expand)
@Test public void isNativeTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmProfileTO profileTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileTO = Mockito.mock(AutoScaleVmProfileTO.class); } // === Replace local variable in test with === profileTO;

Test Case ID #cloudstack_Test_124_2

Test Case Name: isNativeFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: profileTO

Suggested Diff
@@ @Test public void isNativeFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); - AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + // removed local mock; replaced with global field `profileTO` when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); }
Original Test Code (click to expand)
@Test public void isNativeFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmProfileTO profileTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileTO = Mockito.mock(AutoScaleVmProfileTO.class); } // === Replace local variable in test with === profileTO;

Test Case ID #cloudstack_Test_124_3

Test Case Name: hasSourceVirtualRouterTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: profileTO

Suggested Diff
@@ @Test public void hasSourceVirtualRouterTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); - AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + // removed local mock; replaced with global field `profileTO` when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); }
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmProfileTO profileTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileTO = Mockito.mock(AutoScaleVmProfileTO.class); } // === Replace local variable in test with === profileTO;

Test Case ID #cloudstack_Test_124_4

Test Case Name: hasSourceVirtualRouterFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: profileTO

Suggested Diff
@@ @Test public void hasSourceVirtualRouterFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); - AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + // removed local mock; replaced with global field `profileTO` when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); }
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmProfileTO profileTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileTO = Mockito.mock(AutoScaleVmProfileTO.class); } // === Replace local variable in test with === profileTO;

Test Case ID #cloudstack_Test_124_5

Test Case Name: updateCountersMapWithInstantDataForCPU(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: profileTO

Suggested Diff
@@ @Test public void updateCountersMapWithInstantDataForCPU() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + // removed local mock; replaced with global field `profileTO` when(counterDao.findById(counterId)).thenReturn(counterMock); when(counterMock.getSource()).thenReturn(Counter.Source.CPU); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); String key = scaleUpPolicyId + "-" + conditionId + "-" + counterId; countersMap.put(key, (double) 10); countersNumberMap.put(key, 1); double value = 0.5; autoScaleManagerImplSpy.updateCountersMapWithInstantData(countersMap, countersNumberMap, groupTO, counterId, conditionId, scaleUpPolicyId, value, AutoScaleValueType.INSTANT_VM); Assert.assertEquals(1, countersMap.size()); Assert.assertEquals(1, countersNumberMap.size()); Assert.assertEquals(60, (double) countersMap.get(key), 0); Assert.assertEquals(2, (long) countersNumberMap.get(key)); }
Original Test Code (click to expand)
@Test public void updateCountersMapWithInstantDataForCPU() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(counterDao.findById(counterId)).thenReturn(counterMock); when(counterMock.getSource()).thenReturn(Counter.Source.CPU); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); String key = scaleUpPolicyId + "-" + conditionId + "-" + counterId; countersMap.put(key, (double) 10); countersNumberMap.put(key, 1); double value = 0.5; autoScaleManagerImplSpy.updateCountersMapWithInstantData(countersMap, countersNumberMap, groupTO, counterId, conditionId, scaleUpPolicyId, value, AutoScaleValueType.INSTANT_VM); Assert.assertEquals(1, countersMap.size()); Assert.assertEquals(1, countersNumberMap.size()); Assert.assertEquals(60, (double) countersMap.get(key), 0); Assert.assertEquals(2, (long) countersNumberMap.get(key)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmProfileTO profileTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileTO = Mockito.mock(AutoScaleVmProfileTO.class); } // === Replace local variable in test with === profileTO;

Mock Clone Instance #cloudstack_MCI_125

Reusable Method

private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_125_1

Test Case Name: testGetSwiftCmd(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
--- original +++ refactored @@ public void testGetSwiftCmd() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String cmd = SwiftUtil.getSwiftCmd(cfg, "swift", "stat"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword stat"; assertThat(cmd, is(equalTo(expected))); }
Original Test Code (click to expand)
@Test public void testGetSwiftCmd() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String cmd = SwiftUtil.getSwiftCmd(cfg, "swift", "stat"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword stat"; assertThat(cmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_2

Test Case Name: testGetSwiftObjectCmd(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
--- original +++ refactored @@ public void testGetSwiftObjectCmd() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String objectCmd = SwiftUtil.getSwiftObjectCmd(cfg, "swift", "delete", "T-123", "template.vhd"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword delete T-123 template.vhd"; assertThat(objectCmd, is(equalTo(expected))); }
Original Test Code (click to expand)
@Test public void testGetSwiftObjectCmd() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String objectCmd = SwiftUtil.getSwiftObjectCmd(cfg, "swift", "delete", "T-123", "template.vhd"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword delete T-123 template.vhd"; assertThat(objectCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_3

Test Case Name: testGetSwiftContainerCmd(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
@@ @Test public void testGetSwiftContainerCmd() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String containerCmd = SwiftUtil.getSwiftContainerCmd(cfg, "swift", "list", "T-123"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword list T-123"; assertThat(containerCmd, is(equalTo(expected))); }
Original Test Code (click to expand)
@Test public void testGetSwiftContainerCmd() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String containerCmd = SwiftUtil.getSwiftContainerCmd(cfg, "swift", "list", "T-123"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword list T-123"; assertThat(containerCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_4

Test Case Name: testGetUploadCmd(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
--- original +++ refactored @@ public void testGetUploadCmd() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 1024); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd"; assertThat(uploadCmd, is(equalTo(expected))); } @@
Original Test Code (click to expand)
@Test public void testGetUploadCmd() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 1024); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd"; assertThat(uploadCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_5

Test Case Name: testGetUploadCmdWithSegmentsBecauseOfSize(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
--- original +++ refactored @@ public void testGetUploadCmdWithSegmentsBecauseOfSize() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 5368709121L); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd -S 5368709120"; assertThat(uploadCmd, is(equalTo(expected))); } @@
Original Test Code (click to expand)
@Test public void testGetUploadCmdWithSegmentsBecauseOfSize() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 5368709121L); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd -S 5368709120"; assertThat(uploadCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_6

Test Case Name: testGetUploadCmdWithStoragePolicy(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
--- original +++ refactored @@ public void testGetUploadCmdWithStoragePolicy() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn("policy1"); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 1024L); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd --storage-policy \"policy1\""; assertThat(uploadCmd, is(equalTo(expected))); } @@
Original Test Code (click to expand)
@Test public void testGetUploadCmdWithStoragePolicy() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn("policy1"); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 1024L); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd --storage-policy \"policy1\""; assertThat(uploadCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_7

Test Case Name: testGetUploadCmdWithSegmentsAndStoragePolicy(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
--- original +++ refactored @@ public void testGetUploadCmdWithSegmentsAndStoragePolicy() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn("policy1"); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 5368709121L); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd --storage-policy \"policy1\" -S 5368709120"; assertThat(uploadCmd, is(equalTo(expected))); } @@
Original Test Code (click to expand)
@Test public void testGetUploadCmdWithSegmentsAndStoragePolicy() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn("policy1"); String uploadCmd = SwiftUtil.getUploadObjectCommand(cfg, "swift", "T-1", "template.vhd", 5368709121L); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword upload T-1 template.vhd --storage-policy \"policy1\" -S 5368709120"; assertThat(uploadCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_8

Test Case Name: testListContainerCmdWithStoragePolicyButNotSupportedByOperation(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
@@ @Test public void testListContainerCmdWithStoragePolicyButNotSupportedByOperation() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn("policy1"); String uploadCmd = SwiftUtil.getSwiftContainerCmd(cfg, "swift", "list", "T-1"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword list T-1"; assertThat(uploadCmd, is(equalTo(expected))); } @@
Original Test Code (click to expand)
@Test public void testListContainerCmdWithStoragePolicyButNotSupportedByOperation() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn("policy1"); String uploadCmd = SwiftUtil.getSwiftContainerCmd(cfg, "swift", "list", "T-1"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword list T-1"; assertThat(uploadCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Test Case ID #cloudstack_Test_125_9

Test Case Name: testListContainerCmdWithoutStoragePolicy(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\SwiftUtilTest.java)

Mock Object Variable Name: cfg

Suggested Diff
--- original +++ refactored @@ public void testListContainerCmdWithoutStoragePolicy() { - SwiftClientCfg cfg = mock(SwiftClientCfg.class); - given(cfg.getEndPoint()).willReturn("swift.endpoint"); - given(cfg.getAccount()).willReturn("cs"); - given(cfg.getUserName()).willReturn("sec-storage"); - given(cfg.getKey()).willReturn("mypassword"); + SwiftClientCfg cfg = createMockSwiftClientCfg("swift.endpoint", "cs", "sec-storage", "mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String uploadCmd = SwiftUtil.getSwiftContainerCmd(cfg, "swift", "list", "T-1"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword list T-1"; assertThat(uploadCmd, is(equalTo(expected))); }
Original Test Code (click to expand)
@Test public void testListContainerCmdWithoutStoragePolicy() { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn("swift.endpoint"); given(cfg.getAccount()).willReturn("cs"); given(cfg.getUserName()).willReturn("sec-storage"); given(cfg.getKey()).willReturn("mypassword"); given(cfg.getStoragePolicy()).willReturn(null); String uploadCmd = SwiftUtil.getSwiftContainerCmd(cfg, "swift", "list", "T-1"); String expected = "/usr/bin/python swift -A swift.endpoint -U cs:sec-storage -K mypassword list T-1"; assertThat(uploadCmd, is(equalTo(expected))); }
Reusable Method for MCI (click to expand)
private static SwiftClientCfg createMockSwiftClientCfg(String endPoint, String account, String userName, String key) { SwiftClientCfg cfg = mock(SwiftClientCfg.class); given(cfg.getEndPoint()).willReturn(endPoint); given(cfg.getAccount()).willReturn(account); given(cfg.getUserName()).willReturn(userName); given(cfg.getKey()).willReturn(key); return cfg; }

Mock Clone Instance #cloudstack_MCI_126

Reusable Method

// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

The refactoring details in each test cases


Test Case ID #cloudstack_Test_126_1

Test Case Name: testDestroyCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testDestroyCommand() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final Volume volume = Mockito.mock(Volume.class); final String vmName = "Test"; - final DestroyCommand command = new DestroyCommand(pool, volume, vmName); + final DestroyCommand command = new DestroyCommand(pool, volume, vmName); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final VolumeTO vol = command.getVolume(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(vol.getPoolType(), vol.getPoolUuid())).thenReturn(primary); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(vol.getPoolType(), vol.getPoolUuid()); }
Original Test Code (click to expand)
@Test public void testDestroyCommand() { final StoragePool pool = Mockito.mock(StoragePool.class); final Volume volume = Mockito.mock(Volume.class); final String vmName = "Test"; final DestroyCommand command = new DestroyCommand(pool, volume, vmName); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final VolumeTO vol = command.getVolume(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(vol.getPoolType(), vol.getPoolUuid())).thenReturn(primary); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(vol.getPoolType(), vol.getPoolUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_2

Test Case Name: testDestroyCommandError(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testDestroyCommandError() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final Volume volume = Mockito.mock(Volume.class); final String vmName = "Test"; - final DestroyCommand command = new DestroyCommand(pool, volume, vmName); + final DestroyCommand command = new DestroyCommand(pool, volume, vmName); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final VolumeTO vol = command.getVolume(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(vol.getPoolType(), vol.getPoolUuid())).thenReturn(primary); when(primary.deletePhysicalDisk(vol.getPath(), null)).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(vol.getPoolType(), vol.getPoolUuid()); }
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testDestroyCommandError() { final StoragePool pool = Mockito.mock(StoragePool.class); final Volume volume = Mockito.mock(Volume.class); final String vmName = "Test"; final DestroyCommand command = new DestroyCommand(pool, volume, vmName); final KVMStoragePoolManager poolManager = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final VolumeTO vol = command.getVolume(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(poolManager); when(poolManager.getStoragePool(vol.getPoolType(), vol.getPoolUuid())).thenReturn(primary); when(primary.deletePhysicalDisk(vol.getPath(), null)).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(poolManager, times(1)).getStoragePool(vol.getPoolType(), vol.getPoolUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_3

Test Case Name: testPrimaryStorageDownloadCommandNOTemplateDisk(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test(expected = NullPointerException.class) public void testPrimaryStorageDownloadCommandNOTemplateDisk() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final List<KVMPhysicalDisk> disks = new ArrayList<KVMPhysicalDisk>(); final String name = "Test"; final String url = "http://template/"; final ImageFormat format = ImageFormat.QCOW2; final long accountId = 1l; final int wait = 0; final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test(expected = NullPointerException.class) public void testPrimaryStorageDownloadCommandNOTemplateDisk() { final StoragePool pool = Mockito.mock(StoragePool.class); final List<KVMPhysicalDisk> disks = new ArrayList<KVMPhysicalDisk>(); final String name = "Test"; final String url = "http://template/"; final ImageFormat format = ImageFormat.QCOW2; final long accountId = 1l; final int wait = 0; final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk tmplVol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk primaryVol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk disk = new KVMPhysicalDisk("/path", "disk.qcow2", primaryPool); disks.add(disk); final int index = url.lastIndexOf("/"); final String mountpoint = url.substring(0, index); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(mountpoint)).thenReturn(secondaryPool); when(secondaryPool.listPhysicalDisks()).thenReturn(disks); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPoolUuid())).thenReturn(primaryPool); when(storagePoolMgr.copyPhysicalDisk(tmplVol, UUID.randomUUID().toString(), primaryPool, 0)).thenReturn(primaryVol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_4

Test Case Name: testPrimaryStorageDownloadCommandNOTemplateNODisk(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testPrimaryStorageDownloadCommandNOTemplateNODisk() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final List<KVMPhysicalDisk> disks = new ArrayList<KVMPhysicalDisk>(); final String name = "Test"; final String url = "http://template/"; final ImageFormat format = ImageFormat.QCOW2; final long accountId = 1l; final int wait = 0; - final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); + final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk tmplVol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk primaryVol = Mockito.mock(KVMPhysicalDisk.class); final int index = url.lastIndexOf("/"); final String mountpoint = url.substring(0, index); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(mountpoint)).thenReturn(secondaryPool); when(secondaryPool.listPhysicalDisks()).thenReturn(disks); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPoolUuid())).thenReturn(primaryPool); when(storagePoolMgr.copyPhysicalDisk(tmplVol, UUID.randomUUID().toString(), primaryPool, 0)).thenReturn(primaryVol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Original Test Code (click to expand)
@Test public void testPrimaryStorageDownloadCommandNOTemplateNODisk() { final StoragePool pool = Mockito.mock(StoragePool.class); final List<KVMPhysicalDisk> disks = new ArrayList<KVMPhysicalDisk>(); final String name = "Test"; final String url = "http://template/"; final ImageFormat format = ImageFormat.QCOW2; final long accountId = 1l; final int wait = 0; final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk tmplVol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk primaryVol = Mockito.mock(KVMPhysicalDisk.class); final int index = url.lastIndexOf("/"); final String mountpoint = url.substring(0, index); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(mountpoint)).thenReturn(secondaryPool); when(secondaryPool.listPhysicalDisks()).thenReturn(disks); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPoolUuid())).thenReturn(primaryPool); when(storagePoolMgr.copyPhysicalDisk(tmplVol, UUID.randomUUID().toString(), primaryPool, 0)).thenReturn(primaryVol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_5

Test Case Name: testPrimaryStorageDownloadCommandNOTemplateNOQcow2(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testPrimaryStorageDownloadCommandNOTemplateNOQcow2() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final List<KVMPhysicalDisk> disks = new ArrayList<KVMPhysicalDisk>(); final List<KVMPhysicalDisk> spiedDisks = Mockito.spy(disks);
Original Test Code (click to expand)
@Test public void testPrimaryStorageDownloadCommandNOTemplateNOQcow2() { final StoragePool pool = Mockito.mock(StoragePool.class); final List<KVMPhysicalDisk> disks = new ArrayList<KVMPhysicalDisk>(); final List<KVMPhysicalDisk> spiedDisks = Mockito.spy(disks); final String name = "Test"; final String url = "http://template/"; final ImageFormat format = ImageFormat.QCOW2; final long accountId = 1l; final int wait = 0; final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk tmplVol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk primaryVol = Mockito.mock(KVMPhysicalDisk.class); final int index = url.lastIndexOf("/"); final String mountpoint = url.substring(0, index); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(mountpoint)).thenReturn(secondaryPool); when(secondaryPool.listPhysicalDisks()).thenReturn(spiedDisks); when(spiedDisks.isEmpty()).thenReturn(false); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPoolUuid())).thenReturn(primaryPool); when(storagePoolMgr.copyPhysicalDisk(tmplVol, UUID.randomUUID().toString(), primaryPool, 0)).thenReturn(primaryVol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_6

Test Case Name: testPrimaryStorageDownloadCommandTemplateNoDisk(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test(expected = NullPointerException.class) public void testPrimaryStorageDownloadCommandTemplateNoDisk() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String name = "Test"; final String url = "http://template/template.qcow2"; final ImageFormat format = ImageFormat.VHD; final long accountId = 1l; final int wait = 0; - final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); + final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk tmplVol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk primaryVol = Mockito.mock(KVMPhysicalDisk.class); final int index = url.lastIndexOf("/"); final String mountpoint = url.substring(0, index); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(mountpoint)).thenReturn(secondaryPool); when(secondaryPool.getPhysicalDisk("template.qcow2")).thenReturn(tmplVol); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPoolUuid())).thenReturn(primaryPool); when(storagePoolMgr.copyPhysicalDisk(tmplVol, UUID.randomUUID().toString(), primaryPool, 0)).thenReturn(primaryVol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePool(command.getPool().getType(), command.getPoolUuid()); }
Original Test Code (click to expand)
@Test(expected = NullPointerException.class) public void testPrimaryStorageDownloadCommandTemplateNoDisk() { final StoragePool pool = Mockito.mock(StoragePool.class); final String name = "Test"; final String url = "http://template/template.qcow2"; final ImageFormat format = ImageFormat.VHD; final long accountId = 1l; final int wait = 0; final PrimaryStorageDownloadCommand command = new PrimaryStorageDownloadCommand(name, url, format, accountId, pool, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk tmplVol = Mockito.mock(KVMPhysicalDisk.class); final KVMPhysicalDisk primaryVol = Mockito.mock(KVMPhysicalDisk.class); final int index = url.lastIndexOf("/"); final String mountpoint = url.substring(0, index); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(mountpoint)).thenReturn(secondaryPool); when(secondaryPool.getPhysicalDisk("template.qcow2")).thenReturn(tmplVol); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPoolUuid())).thenReturn(primaryPool); when(storagePoolMgr.copyPhysicalDisk(tmplVol, UUID.randomUUID().toString(), primaryPool, 0)).thenReturn(primaryVol); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePool(command.getPool().getType(), command.getPoolUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_7

Test Case Name: testUpgradeSnapshotCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testUpgradeSnapshotCommand() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` ; final String secondaryStoragePoolURL = "url"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final Long templateId = 1l; final Long tmpltAccountId = 1l; final String volumePath = "/opt/path"; final String snapshotUuid = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String snapshotName = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String version = "1"; - final UpgradeSnapshotCommand command = new UpgradeSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, templateId, tmpltAccountId, volumePath, snapshotUuid, snapshotName, version); + final UpgradeSnapshotCommand command = new UpgradeSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, templateId, tmpltAccountId, volumePath, snapshotUuid, snapshotName, version); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testUpgradeSnapshotCommand() { final StoragePool pool = Mockito.mock(StoragePool.class); ; final String secondaryStoragePoolURL = "url"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final Long templateId = 1l; final Long tmpltAccountId = 1l; final String volumePath = "/opt/path"; final String snapshotUuid = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String snapshotName = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String version = "1"; final UpgradeSnapshotCommand command = new UpgradeSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, templateId, tmpltAccountId, volumePath, snapshotUuid, snapshotName, version); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_8

Test Case Name: testDeleteStoragePoolCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @Test public void testDeleteStoragePoolCommand() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); - final DeleteStoragePoolCommand command = new DeleteStoragePoolCommand(storagePool); + final DeleteStoragePoolCommand command = new DeleteStoragePoolCommand(pool); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.deleteStoragePool(pool.getType(), pool.getUuid())).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).deleteStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@Test public void testDeleteStoragePoolCommand() { final StoragePool storagePool = Mockito.mock(StoragePool.class); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final DeleteStoragePoolCommand command = new DeleteStoragePoolCommand(storagePool); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.deleteStoragePool(pool.getType(), pool.getUuid())).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).deleteStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_9

Test Case Name: testDeleteStoragePoolCommandException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @Test public void testDeleteStoragePoolCommandException() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); - final DeleteStoragePoolCommand command = new DeleteStoragePoolCommand(storagePool); + final DeleteStoragePoolCommand command = new DeleteStoragePoolCommand(pool); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.deleteStoragePool(pool.getType(), pool.getUuid())).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).deleteStoragePool(pool.getType(), pool.getUuid()); }
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testDeleteStoragePoolCommandException() { final StoragePool storagePool = Mockito.mock(StoragePool.class); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final DeleteStoragePoolCommand command = new DeleteStoragePoolCommand(storagePool); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.deleteStoragePool(pool.getType(), pool.getUuid())).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).deleteStoragePool(pool.getType(), pool.getUuid()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_10

Test Case Name: testCreateStoragePoolCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreateStoragePoolCommand() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final CreateStoragePoolCommand command = new CreateStoragePoolCommand(true, pool); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testCreateStoragePoolCommand() { final StoragePool pool = Mockito.mock(StoragePool.class); final CreateStoragePoolCommand command = new CreateStoragePoolCommand(true, pool); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_11

Test Case Name: testModifyStoragePoolCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testModifyStoragePoolCommand() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` ; final ModifyStoragePoolCommand command = new ModifyStoragePoolCommand(true, pool); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testModifyStoragePoolCommand() { final StoragePool pool = Mockito.mock(StoragePool.class); ; final ModifyStoragePoolCommand command = new ModifyStoragePoolCommand(true, pool); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool kvmStoragePool = Mockito.mock(KVMStoragePool.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.createStoragePool(command.getPool().getUuid(), command.getPool().getHost(), command.getPool().getPort(), command.getPool().getPath(), command.getPool().getUserInfo(), command.getPool().getType(), command.getDetails())).thenReturn(kvmStoragePool); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).createStoragePool(command.getPool().getUuid(), command.getPool().getHost(), command.getPool().getPort(), command.getPool().getPath(), command.getPool().getUserInfo(), command.getPool().getType(), command.getDetails()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_12

Test Case Name: testModifyStoragePoolCommandFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testModifyStoragePoolCommandFailure() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` ; final ModifyStoragePoolCommand command = new ModifyStoragePoolCommand(true, pool); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.createStoragePool(command.getPool().getUuid(), command.getPool().getHost(), command.getPool().getPort(), command.getPool().getPath(), command.getPool().getUserInfo(), command.getPool().getType(), command.getDetails())).thenReturn(null); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).createStoragePool(command.getPool().getUuid(), command.getPool().getHost(), command.getPool().getPort(), command.getPool().getPath(), command.getPool().getUserInfo(), command.getPool().getType(), command.getDetails()); }
Original Test Code (click to expand)
@Test public void testModifyStoragePoolCommandFailure() { final StoragePool pool = Mockito.mock(StoragePool.class); ; final ModifyStoragePoolCommand command = new ModifyStoragePoolCommand(true, pool); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.createStoragePool(command.getPool().getUuid(), command.getPool().getHost(), command.getPool().getPort(), command.getPool().getPath(), command.getPool().getUserInfo(), command.getPool().getType(), command.getDetails())).thenReturn(null); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).createStoragePool(command.getPool().getUuid(), command.getPool().getHost(), command.getPool().getPort(), command.getPool().getPath(), command.getPool().getUserInfo(), command.getPool().getType(), command.getDetails()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_13

Test Case Name: testCreateVolumeFromSnapshotCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreateVolumeFromSnapshotCommand() { - // This tests asserts to False because there will be a NPE due to UUID static method calls. - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "/opt/storage/"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String backedUpSnapshotName = "uuid:/8edb1156-a851-4914-afc6-468ee52ac862/"; final int wait = 0; final CreateVolumeFromSnapshotCommand command = new CreateVolumeFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testCreateVolumeFromSnapshotCommand() { // This tests asserts to False because there will be a NPE due to UUID static method calls. final StoragePool pool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "/opt/storage/"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String backedUpSnapshotName = "uuid:/8edb1156-a851-4914-afc6-468ee52ac862/"; final int wait = 0; final CreateVolumeFromSnapshotCommand command = new CreateVolumeFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); final String primaryUuid = command.getPrimaryStoragePoolNameLabel(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(secondaryPool); when(secondaryPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(storagePoolMgr.getStoragePool(command.getPool().getType(), primaryUuid)).thenReturn(primaryPool); //when(storagePoolMgr.copyPhysicalDisk(snapshot, volUuid, primaryPool, 0)).thenReturn(disk); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(secondaryPool, times(1)).getPhysicalDisk(command.getSnapshotName()); verify(storagePoolMgr, times(1)).getStoragePool(command.getPool().getType(), primaryUuid); //verify(storagePoolMgr, times(1)).copyPhysicalDisk(snapshot, volUuid, primaryPool, 0); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_14

Test Case Name: testCreateVolumeFromSnapshotCommandCloudException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testCreateVolumeFromSnapshotCommandCloudException() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "/opt/storage/"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String backedUpSnapshotName = "uuid:/8edb1156-a851-4914-afc6-468ee52ac862/"; final int wait = 0; - final CreateVolumeFromSnapshotCommand command = new CreateVolumeFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, wait); + final CreateVolumeFromSnapshotCommand command = new CreateVolumeFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); final String primaryUuid = command.getPrimaryStoragePoolNameLabel(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(secondaryPool); when(secondaryPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(storagePoolMgr.getStoragePool(command.getPool().getType(), primaryUuid)).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(secondaryPool, times(1)).getPhysicalDisk(command.getSnapshotName()); verify(storagePoolMgr, times(1)).getStoragePool(command.getPool().getType(), primaryUuid); }
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testCreateVolumeFromSnapshotCommandCloudException() { final StoragePool pool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "/opt/storage/"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "uuid:/8edb1156-a851-4914-afc6-468ee52ac861/"; final String backedUpSnapshotName = "uuid:/8edb1156-a851-4914-afc6-468ee52ac862/"; final int wait = 0; final CreateVolumeFromSnapshotCommand command = new CreateVolumeFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); final String primaryUuid = command.getPrimaryStoragePoolNameLabel(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(secondaryPool); when(secondaryPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(storagePoolMgr.getStoragePool(command.getPool().getType(), primaryUuid)).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(secondaryPool, times(1)).getPhysicalDisk(command.getSnapshotName()); verify(storagePoolMgr, times(1)).getStoragePool(command.getPool().getType(), primaryUuid); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_15

Test Case Name: testCreatePrivateTemplateFromVolumeCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreatePrivateTemplateFromVolumeCommand() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` ; final String secondaryStorageUrl = "nfs:/127.0.0.1/storage/secondary"; final long templateId = 1l; final long accountId = 1l; final String userSpecifiedName = "User"; final String uniqueName = "Unique"; final String volumePath = "/123/vol"; final String vmName = "Test"; final int wait = 0; - final CreatePrivateTemplateFromVolumeCommand command = new CreatePrivateTemplateFromVolumeCommand(pool, secondaryStorageUrl, templateId, accountId, userSpecifiedName, uniqueName, volumePath, vmName, wait); + final CreatePrivateTemplateFromVolumeCommand command = new CreatePrivateTemplateFromVolumeCommand(pool, secondaryStorageUrl, templateId, accountId, userSpecifiedName, uniqueName, volumePath, vmName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryStorage = Mockito.mock(KVMStoragePool.class); //final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(secondaryStorageUrl)).thenReturn(secondaryStorage); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPrimaryStoragePoolNameLabel())).thenThrow(new CloudRuntimeException("error")); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(secondaryStorageUrl); verify(storagePoolMgr, times(1)).getStoragePool(command.getPool().getType(), command.getPrimaryStoragePoolNameLabel()); }
Original Test Code (click to expand)
@Test public void testCreatePrivateTemplateFromVolumeCommand() { //Simple test used to make sure the flow (LibvirtComputingResource => Request => CommandWrapper) is working. //The code is way to big and complex. Will finish the refactor and come back to this to add more cases. final StoragePool pool = Mockito.mock(StoragePool.class); ; final String secondaryStorageUrl = "nfs:/127.0.0.1/storage/secondary"; final long templateId = 1l; final long accountId = 1l; final String userSpecifiedName = "User"; final String uniqueName = "Unique"; final String volumePath = "/123/vol"; final String vmName = "Test"; final int wait = 0; final CreatePrivateTemplateFromVolumeCommand command = new CreatePrivateTemplateFromVolumeCommand(pool, secondaryStorageUrl, templateId, accountId, userSpecifiedName, uniqueName, volumePath, vmName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryStorage = Mockito.mock(KVMStoragePool.class); //final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePoolByURI(secondaryStorageUrl)).thenReturn(secondaryStorage); when(storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPrimaryStoragePoolNameLabel())).thenThrow(new CloudRuntimeException("error")); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(secondaryStorageUrl); verify(storagePoolMgr, times(1)).getStoragePool(command.getPool().getType(), command.getPrimaryStoragePoolNameLabel()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_16

Test Case Name: testManageSnapshotCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testManageSnapshotCommandLibvirtException() { - //Simple test used to make sure the flow (LibvirtComputingResource => Request => CommandWrapper) is working. - //The code is way to big and complex. Will finish the refactor and come back to this to add more cases. - final StoragePool pool = Mockito.mock(StoragePool.class); + //Simple test used to make sure the flow (LibvirtComputingResource => Request => CommandWrapper) is working. + //The code is way to big and complex. Will finish the refactor and come back to this to add more cases. + // removed local mock; replaced with global field `pool` ; final String volumePath = "/123/vol"; final String vmName = "Test"; final long snapshotId = 1l; final String preSnapshotPath = "/snapshot/path"; final String snapshotName = "snap"; - final ManageSnapshotCommand command = new ManageSnapshotCommand(snapshotId, volumePath, pool, preSnapshotPath, snapshotName, vmName); + final ManageSnapshotCommand command = new ManageSnapshotCommand(snapshotId, volumePath, pool, preSnapshotPath, snapshotName, vmName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); //final Connect conn = Mockito.mock(Connect.class); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testManageSnapshotCommandLibvirtException() { //Simple test used to make sure the flow (LibvirtComputingResource => Request => CommandWrapper) is working. //The code is way to big and complex. Will finish the refactor and come back to this to add more cases. final StoragePool pool = Mockito.mock(StoragePool.class); ; final String volumePath = "/123/vol"; final String vmName = "Test"; final long snapshotId = 1l; final String preSnapshotPath = "/snapshot/path"; final String snapshotName = "snap"; final ManageSnapshotCommand command = new ManageSnapshotCommand(snapshotId, volumePath, pool, preSnapshotPath, snapshotName, vmName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); //final Connect conn = Mockito.mock(Connect.class); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_17

Test Case Name: testManageSnapshotCommandLibvirt(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @Test public void testManageSnapshotCommandLibvirt() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` ; final String volumePath = "/123/vol"; final String vmName = "Test"; final long snapshotId = 1l; final String preSnapshotPath = "/snapshot/path"; final String snapshotName = "snap"; - final ManageSnapshotCommand command = new ManageSnapshotCommand(snapshotId, volumePath, storagePool, preSnapshotPath, snapshotName, vmName); + final ManageSnapshotCommand command = new ManageSnapshotCommand(snapshotId, volumePath, pool, preSnapshotPath, snapshotName, vmName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class);
Original Test Code (click to expand)
@Test public void testManageSnapshotCommandLibvirt() { final StoragePool storagePool = Mockito.mock(StoragePool.class); ; final String volumePath = "/123/vol"; final String vmName = "Test"; final long snapshotId = 1l; final String preSnapshotPath = "/snapshot/path"; final String snapshotName = "snap"; final ManageSnapshotCommand command = new ManageSnapshotCommand(snapshotId, volumePath, storagePool, preSnapshotPath, snapshotName, vmName); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool primaryPool = Mockito.mock(KVMStoragePool.class); final Domain vm = Mockito.mock(Domain.class); final DomainInfo info = Mockito.mock(DomainInfo.class); final DomainState state = DomainInfo.DomainState.VIR_DOMAIN_RUNNING; info.state = state; final KVMPhysicalDisk disk = Mockito.mock(KVMPhysicalDisk.class); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vmName)).thenReturn(conn); when(libvirtComputingResourceMock.getDomain(conn, command.getVmName())).thenReturn(vm); when(vm.getInfo()).thenReturn(info); } catch (final LibvirtException e) { fail(e.getMessage()); } when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primaryPool); when(primaryPool.getPhysicalDisk(command.getVolumePath())).thenReturn(disk); when(primaryPool.isExternalSnapshot()).thenReturn(false); try { when(vm.getUUIDString()).thenReturn("cdb18980-546d-4153-b916-70ee9edf0908"); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vmName); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_18

Test Case Name: testBackupSnapshotCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testBackupSnapshotCommandLibvirtException() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` ; final String secondaryStorageUrl = "nfs:/127.0.0.1/storage/secondary"; final long accountId = 1l; final String volumePath = "/123/vol"; final String vmName = "Test"; final int wait = 0; final long snapshotId = 1l; final String snapshotName = "snap"; final Long dcId = 1l; final Long volumeId = 1l; final Long secHostId = 1l; final String snapshotUuid = "9a0afe7c-26a7-4585-bf87-abf82ae106d9"; final String prevBackupUuid = "003a0cc2-2e04-417a-bee0-534ef1724561"; final boolean isVolumeInactive = false; final String prevSnapshotUuid = "1791efae-f22d-474b-87c6-92547d6c5877"; - final BackupSnapshotCommand command = new BackupSnapshotCommand(secondaryStorageUrl, dcId, accountId, volumeId, snapshotId, secHostId, volumePath, pool, snapshotUuid, snapshotName, prevSnapshotUuid, prevBackupUuid, isVolumeInactive, vmName, wait); + final BackupSnapshotCommand command = new BackupSnapshotCommand(secondaryStorageUrl, dcId, accountId, volumeId, snapshotId, secHostId, volumePath, pool, snapshotUuid, snapshotName, prevSnapshotUuid, prevBackupUuid, isVolumeInactive, vmName, wait); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); //final Connect conn = Mockito.mock(Connect.class); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper);
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testBackupSnapshotCommandLibvirtException() { //Simple test used to make sure the flow (LibvirtComputingResource => Request => CommandWrapper) is working. //The code is way to big and complex. Will finish the refactor and come back to this to add more cases. final StoragePool pool = Mockito.mock(StoragePool.class); ; final String secondaryStorageUrl = "nfs:/127.0.0.1/storage/secondary"; final long accountId = 1l; final String volumePath = "/123/vol"; final String vmName = "Test"; final int wait = 0; final long snapshotId = 1l; final String snapshotName = "snap"; final Long dcId = 1l; final Long volumeId = 1l; final Long secHostId = 1l; final String snapshotUuid = "9a0afe7c-26a7-4585-bf87-abf82ae106d9"; final String prevBackupUuid = "003a0cc2-2e04-417a-bee0-534ef1724561"; final boolean isVolumeInactive = false; final String prevSnapshotUuid = "1791efae-f22d-474b-87c6-92547d6c5877"; final BackupSnapshotCommand command = new BackupSnapshotCommand(secondaryStorageUrl, dcId, accountId, volumeId, snapshotId, secHostId, volumePath, pool, snapshotUuid, snapshotName, prevSnapshotUuid, prevBackupUuid, isVolumeInactive, vmName, wait); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); //final Connect conn = Mockito.mock(Connect.class); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(command.getVmName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(command.getVmName()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_19

Test Case Name: testCreatePrivateTemplateFromSnapshotCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreatePrivateTemplateFromSnapshotCommand() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l;
Original Test Code (click to expand)
@Test public void testCreatePrivateTemplateFromSnapshotCommand() { final StoragePool pool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "/run/9a0afe7c-26a7-4585-bf87-abf82ae106d9/"; final String backedUpSnapshotName = "snap"; final String origTemplateInstallPath = "/install/path/"; final Long newTemplateId = 2l; final String templateName = "templ"; final int wait = 0; final CreatePrivateTemplateFromSnapshotCommand command = new CreatePrivateTemplateFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, origTemplateInstallPath, newTemplateId, templateName, wait); final String templatePath = "/template/path"; final String localPath = "/mnt/local"; final String tmplName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool snapshotPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); final StorageLayer storage = Mockito.mock(StorageLayer.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final TemplateLocation location = Mockito.mock(TemplateLocation.class); final Processor qcow2Processor = Mockito.mock(Processor.class); final FormatInfo info = Mockito.mock(FormatInfo.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(snapshotPool); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl())).thenReturn(secondaryPool); when(snapshotPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(secondaryPool.getLocalPath()).thenReturn(localPath); when(libvirtComputingResourceMock.getStorage()).thenReturn(storage); when(libvirtComputingResourceMock.createTmplPath()).thenReturn(templatePath); when(libvirtComputingResourceMock.getCmdsTimeout()).thenReturn(1); final String templateFolder = command.getAccountId() + File.separator + command.getNewTemplateId(); final String templateInstallFolder = "template/tmpl/" + templateFolder; final String tmplPath = secondaryPool.getLocalPath() + File.separator + templateInstallFolder; when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.buildTemplateLocation(storage, tmplPath)).thenReturn(location); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(tmplName); try { when(libvirtUtilitiesHelper.buildQCOW2Processor(storage)).thenReturn(qcow2Processor); when(qcow2Processor.process(tmplPath, null, tmplName)).thenReturn(info); } catch (final ConfigurationException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_20

Test Case Name: testCreatePrivateTemplateFromSnapshotCommandConfigurationException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testCreatePrivateTemplateFromSnapshotCommandConfigurationException() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "/run/9a0afe7c-26a7-4585-bf87-abf82ae106d9/"; final String backedUpSnapshotName = "snap"; final String origTemplateInstallPath = "/install/path/"; final Long newTemplateId = 2l; final String templateName = "templ"; final int wait = 0; final CreatePrivateTemplateFromSnapshotCommand command = new CreatePrivateTemplateFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, origTemplateInstallPath, newTemplateId, templateName, wait); final String templatePath = "/template/path"; final String localPath = "/mnt/local"; final String tmplName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool snapshotPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); final StorageLayer storage = Mockito.mock(StorageLayer.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final TemplateLocation location = Mockito.mock(TemplateLocation.class); final Processor qcow2Processor = Mockito.mock(Processor.class); final FormatInfo info = Mockito.mock(FormatInfo.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(snapshotPool); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl())).thenReturn(secondaryPool); when(snapshotPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(secondaryPool.getLocalPath()).thenReturn(localPath); when(libvirtComputingResourceMock.getStorage()).thenReturn(storage); when(libvirtComputingResourceMock.createTmplPath()).thenReturn(templatePath); when(libvirtComputingResourceMock.getCmdsTimeout()).thenReturn(1); final String templateFolder = command.getAccountId() + File.separator + command.getNewTemplateId(); final String templateInstallFolder = "template/tmpl/" + templateFolder; final String tmplPath = secondaryPool.getLocalPath() + File.separator + templateInstallFolder; when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.buildTemplateLocation(storage, tmplPath)).thenReturn(location); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(tmplName); try { when(libvirtUtilitiesHelper.buildQCOW2Processor(storage)).thenThrow(ConfigurationException.class); when(qcow2Processor.process(tmplPath, null, tmplName)).thenReturn(info); } catch (final ConfigurationException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl()); }
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testCreatePrivateTemplateFromSnapshotCommandConfigurationException() { final StoragePool pool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "/run/9a0afe7c-26a7-4585-bf87-abf82ae106d9/"; final String backedUpSnapshotName = "snap"; final String origTemplateInstallPath = "/install/path/"; final Long newTemplateId = 2l; final String templateName = "templ"; final int wait = 0; final CreatePrivateTemplateFromSnapshotCommand command = new CreatePrivateTemplateFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, origTemplateInstallPath, newTemplateId, templateName, wait); final String templatePath = "/template/path"; final String localPath = "/mnt/local"; final String tmplName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool snapshotPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); final StorageLayer storage = Mockito.mock(StorageLayer.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final TemplateLocation location = Mockito.mock(TemplateLocation.class); final Processor qcow2Processor = Mockito.mock(Processor.class); final FormatInfo info = Mockito.mock(FormatInfo.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(snapshotPool); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl())).thenReturn(secondaryPool); when(snapshotPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(secondaryPool.getLocalPath()).thenReturn(localPath); when(libvirtComputingResourceMock.getStorage()).thenReturn(storage); when(libvirtComputingResourceMock.createTmplPath()).thenReturn(templatePath); when(libvirtComputingResourceMock.getCmdsTimeout()).thenReturn(1); final String templateFolder = command.getAccountId() + File.separator + command.getNewTemplateId(); final String templateInstallFolder = "template/tmpl/" + templateFolder; final String tmplPath = secondaryPool.getLocalPath() + File.separator + templateInstallFolder; when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.buildTemplateLocation(storage, tmplPath)).thenReturn(location); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(tmplName); try { when(libvirtUtilitiesHelper.buildQCOW2Processor(storage)).thenThrow(ConfigurationException.class); when(qcow2Processor.process(tmplPath, null, tmplName)).thenReturn(info); } catch (final ConfigurationException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_21

Test Case Name: testCreatePrivateTemplateFromSnapshotCommandInternalErrorException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testCreatePrivateTemplateFromSnapshotCommandInternalErrorException() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l;
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testCreatePrivateTemplateFromSnapshotCommandInternalErrorException() { final StoragePool pool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "/run/9a0afe7c-26a7-4585-bf87-abf82ae106d9/"; final String backedUpSnapshotName = "snap"; final String origTemplateInstallPath = "/install/path/"; final Long newTemplateId = 2l; final String templateName = "templ"; final int wait = 0; final CreatePrivateTemplateFromSnapshotCommand command = new CreatePrivateTemplateFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, origTemplateInstallPath, newTemplateId, templateName, wait); final String templatePath = "/template/path"; final String localPath = "/mnt/local"; final String tmplName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool snapshotPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); final StorageLayer storage = Mockito.mock(StorageLayer.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final TemplateLocation location = Mockito.mock(TemplateLocation.class); final Processor qcow2Processor = Mockito.mock(Processor.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(snapshotPool); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl())).thenReturn(secondaryPool); when(snapshotPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(secondaryPool.getLocalPath()).thenReturn(localPath); when(libvirtComputingResourceMock.getStorage()).thenReturn(storage); when(libvirtComputingResourceMock.createTmplPath()).thenReturn(templatePath); when(libvirtComputingResourceMock.getCmdsTimeout()).thenReturn(1); final String templateFolder = command.getAccountId() + File.separator + command.getNewTemplateId(); final String templateInstallFolder = "template/tmpl/" + templateFolder; final String tmplPath = secondaryPool.getLocalPath() + File.separator + templateInstallFolder; when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.buildTemplateLocation(storage, tmplPath)).thenReturn(location); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(tmplName); try { when(libvirtUtilitiesHelper.buildQCOW2Processor(storage)).thenReturn(qcow2Processor); when(qcow2Processor.process(tmplPath, null, tmplName)).thenThrow(InternalErrorException.class); } catch (final ConfigurationException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_22

Test Case Name: testCreatePrivateTemplateFromSnapshotCommandIOException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testCreatePrivateTemplateFromSnapshotCommandIOException() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l;
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testCreatePrivateTemplateFromSnapshotCommandIOException() { final StoragePool pool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "/run/9a0afe7c-26a7-4585-bf87-abf82ae106d9/"; final String backedUpSnapshotName = "snap"; final String origTemplateInstallPath = "/install/path/"; final Long newTemplateId = 2l; final String templateName = "templ"; final int wait = 0; final CreatePrivateTemplateFromSnapshotCommand command = new CreatePrivateTemplateFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, origTemplateInstallPath, newTemplateId, templateName, wait); final String templatePath = "/template/path"; final String localPath = "/mnt/local"; final String tmplName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool snapshotPool = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk snapshot = Mockito.mock(KVMPhysicalDisk.class); final StorageLayer storage = Mockito.mock(StorageLayer.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final TemplateLocation location = Mockito.mock(TemplateLocation.class); final Processor qcow2Processor = Mockito.mock(Processor.class); final FormatInfo info = Mockito.mock(FormatInfo.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(snapshotPool); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl())).thenReturn(secondaryPool); when(snapshotPool.getPhysicalDisk(command.getSnapshotName())).thenReturn(snapshot); when(secondaryPool.getLocalPath()).thenReturn(localPath); when(libvirtComputingResourceMock.getStorage()).thenReturn(storage); when(libvirtComputingResourceMock.createTmplPath()).thenReturn(templatePath); when(libvirtComputingResourceMock.getCmdsTimeout()).thenReturn(1); final String templateFolder = command.getAccountId() + File.separator + command.getNewTemplateId(); final String templateInstallFolder = "template/tmpl/" + templateFolder; final String tmplPath = secondaryPool.getLocalPath() + File.separator + templateInstallFolder; when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.buildTemplateLocation(storage, tmplPath)).thenReturn(location); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(tmplName); try { when(libvirtUtilitiesHelper.buildQCOW2Processor(storage)).thenReturn(qcow2Processor); when(qcow2Processor.process(tmplPath, null, tmplName)).thenReturn(info); when(location.create(1, true, tmplName)).thenThrow(IOException.class); } catch (final ConfigurationException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final IOException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_23

Test Case Name: testCreatePrivateTemplateFromSnapshotCommandCloudRuntime(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: pool

Suggested Diff
@@ @Test public void testCreatePrivateTemplateFromSnapshotCommandCloudRuntime() { - final StoragePool pool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "/run/9a0afe7c-26a7-4585-bf87-abf82ae106d9/"; final String backedUpSnapshotName = "snap"; final String origTemplateInstallPath = "/install/path/"; final Long newTemplateId = 2l; final String templateName = "templ"; final int wait = 0; final CreatePrivateTemplateFromSnapshotCommand command = new CreatePrivateTemplateFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, origTemplateInstallPath, newTemplateId, templateName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testCreatePrivateTemplateFromSnapshotCommandCloudRuntime() { final StoragePool pool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long dcId = 1l; final Long accountId = 1l; final Long volumeId = 1l; final String backedUpSnapshotUuid = "/run/9a0afe7c-26a7-4585-bf87-abf82ae106d9/"; final String backedUpSnapshotName = "snap"; final String origTemplateInstallPath = "/install/path/"; final Long newTemplateId = 2l; final String templateName = "templ"; final int wait = 0; final CreatePrivateTemplateFromSnapshotCommand command = new CreatePrivateTemplateFromSnapshotCommand(pool, secondaryStoragePoolURL, dcId, accountId, volumeId, backedUpSnapshotUuid, backedUpSnapshotName, origTemplateInstallPath, newTemplateId, templateName, wait); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondaryPool = Mockito.mock(KVMStoragePool.class); final KVMStoragePool snapshotPool = Mockito.mock(KVMStoragePool.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final String tmplName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); String snapshotPath = command.getSnapshotUuid(); final int index = snapshotPath.lastIndexOf("/"); snapshotPath = snapshotPath.substring(0, index); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(tmplName); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath)).thenReturn(snapshotPool); when(storagePoolMgr.getStoragePoolByURI(command.getSecondaryStorageUrl())).thenReturn(secondaryPool); when(snapshotPool.getPhysicalDisk(command.getSnapshotName())).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl() + snapshotPath); verify(storagePoolMgr, times(1)).getStoragePoolByURI(command.getSecondaryStorageUrl()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_24

Test Case Name: testCopyVolumeCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @Test public void testCopyVolumeCommand() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = true; final boolean executeInSequence = false; - final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); + final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, pool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testCopyVolumeCommand() { final StoragePool storagePool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = true; final boolean executeInSequence = false; final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondary = Mockito.mock(KVMStoragePool.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk disk = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(destVolumeName); when(primary.getPhysicalDisk(command.getVolumePath())).thenReturn(disk); when(storagePoolMgr.getStoragePoolByURI(secondaryStoragePoolURL)).thenReturn(secondary); when(secondary.getType()).thenReturn(StoragePoolType.ManagedNFS); when(secondary.getUuid()).thenReturn("60d979d8-d132-4181-8eca-8dfde50d7df6"); when(secondary.createFolder(volumeDestPath)).thenReturn(true); when(storagePoolMgr.deleteStoragePool(secondary.getType(), secondary.getUuid())).thenReturn(true); when(storagePoolMgr.getStoragePoolByURI(secondaryStoragePoolURL + volumeDestPath)).thenReturn(secondary); when(storagePoolMgr.copyPhysicalDisk(disk, destVolumeName, secondary, 0)).thenReturn(disk); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_25

Test Case Name: testCopyVolumeCommandToSecFalse(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @Test public void testCopyVolumeCommandToSecFalse() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; - final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); + final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, pool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testCopyVolumeCommandToSecFalse() { final StoragePool storagePool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondary = Mockito.mock(KVMStoragePool.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk disk = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(destVolumeName); when(secondary.getType()).thenReturn(StoragePoolType.ManagedNFS); when(secondary.getUuid()).thenReturn("60d979d8-d132-4181-8eca-8dfde50d7df6"); when(storagePoolMgr.getStoragePoolByURI(secondaryStoragePoolURL + volumeDestPath)).thenReturn(secondary); when(primary.getPhysicalDisk(command.getVolumePath() + ".qcow2")).thenReturn(disk); when(storagePoolMgr.copyPhysicalDisk(disk, destVolumeName, primary, 0)).thenReturn(disk); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_26

Test Case Name: testCopyVolumeCommandCloudRuntime(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @SuppressWarnings("unchecked") @Test public void testCopyVolumeCommandCloudRuntime() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; - final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); + final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, pool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondary = Mockito.mock(KVMStoragePool.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(destVolumeName); when(secondary.getType()).thenReturn(StoragePoolType.ManagedNFS); when(secondary.getUuid()).thenReturn("60d979d8-d132-4181-8eca-8dfde50d7df6"); when(storagePoolMgr.getStoragePoolByURI(secondaryStoragePoolURL + volumeDestPath)).thenReturn(secondary); when(secondary.getPhysicalDisk(command.getVolumePath() + ".qcow2")).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testCopyVolumeCommandCloudRuntime() { final StoragePool storagePool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondary = Mockito.mock(KVMStoragePool.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenReturn(primary); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(destVolumeName); when(secondary.getType()).thenReturn(StoragePoolType.ManagedNFS); when(secondary.getUuid()).thenReturn("60d979d8-d132-4181-8eca-8dfde50d7df6"); when(storagePoolMgr.getStoragePoolByURI(secondaryStoragePoolURL + volumeDestPath)).thenReturn(secondary); when(secondary.getPhysicalDisk(command.getVolumePath() + ".qcow2")).thenThrow(CloudRuntimeException.class); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_27

Test Case Name: testCopyVolumeCommandCloudRuntime2(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @Test public void testCopyVolumeCommandCloudRuntime2() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; - final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); + final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, pool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final StorageFilerTO pool = command.getPool(); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenThrow(new CloudRuntimeException("error")); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Original Test Code (click to expand)
@Test public void testCopyVolumeCommandCloudRuntime2() { final StoragePool storagePool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final StorageFilerTO pool = command.getPool(); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenThrow(new CloudRuntimeException("error")); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Test Case ID #cloudstack_Test_126_28

Test Case Name: testCopyVolumeCommandPrimaryNotFound(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: storagePool

Suggested Diff
@@ @Test public void testCopyVolumeCommandPrimaryNotFound() { - final StoragePool storagePool = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `pool` final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; - final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); + final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, pool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
Original Test Code (click to expand)
@Test public void testCopyVolumeCommandPrimaryNotFound() { final StoragePool storagePool = Mockito.mock(StoragePool.class); final String secondaryStoragePoolURL = "nfs:/127.0.0.1/storage/secondary"; final Long volumeId = 1l; final int wait = 0; final String volumePath = "/vol/path"; final boolean toSecondaryStorage = false; final boolean executeInSequence = false; final CopyVolumeCommand command = new CopyVolumeCommand(volumeId, volumePath, storagePool, secondaryStoragePoolURL, toSecondaryStorage, wait, executeInSequence); final String destVolumeName = "ce97bbc1-34fe-4259-9202-74bbce2562ab"; final String volumeDestPath = "/volumes/" + command.getVolumeId() + File.separator; final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final KVMStoragePool secondary = Mockito.mock(KVMStoragePool.class); final KVMStoragePool primary = Mockito.mock(KVMStoragePool.class); final KVMPhysicalDisk disk = Mockito.mock(KVMPhysicalDisk.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final StorageFilerTO pool = command.getPool(); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid())).thenThrow(new CloudRuntimeException("not found")); when(storagePoolMgr.createStoragePool(pool.getUuid(), pool.getHost(), pool.getPort(), pool.getPath(), pool.getUserInfo(), pool.getType())).thenReturn(primary); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); when(libvirtUtilitiesHelper.generateUUIDName()).thenReturn(destVolumeName); when(secondary.getType()).thenReturn(StoragePoolType.ManagedNFS); when(secondary.getUuid()).thenReturn("60d979d8-d132-4181-8eca-8dfde50d7df6"); when(storagePoolMgr.getStoragePoolByURI(secondaryStoragePoolURL + volumeDestPath)).thenReturn(secondary); when(primary.getPhysicalDisk(command.getVolumePath() + ".qcow2")).thenReturn(disk); when(storagePoolMgr.copyPhysicalDisk(disk, destVolumeName, primary, 0)).thenReturn(disk); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool pool; // === Add to @BeforeEach method === @BeforeEach public void setUp() { pool = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === pool

Mock Clone Instance #cloudstack_MCI_127

Reusable Method

// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

The refactoring details in each test cases


Test Case ID #cloudstack_Test_127_1

Test Case Name: doesTargetStorageSupportDiskOfferingTestDiskOfferingMoreTagsThanStorageTags(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: storagePoolMock

Suggested Diff
@@ @Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingMoreTagsThanStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A,B,C").when(diskOfferingVoMock).getTags(); - StoragePool storagePoolMock = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `storagePoolMock` Mockito.doReturn("A").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertFalse(result); }
Original Test Code (click to expand)
@Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingMoreTagsThanStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A,B,C").when(diskOfferingVoMock).getTags(); StoragePool storagePoolMock = Mockito.mock(StoragePool.class); Mockito.doReturn("A").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

Test Case ID #cloudstack_Test_127_2

Test Case Name: doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsIsSubSetOfStorageTags(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: storagePoolMock

Suggested Diff
@@ @Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsIsSubSetOfStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A,B,C").when(diskOfferingVoMock).getTags(); - StoragePool storagePoolMock = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `storagePoolMock` Mockito.doReturn("A,B,C,D,X,Y").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Original Test Code (click to expand)
@Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsIsSubSetOfStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A,B,C").when(diskOfferingVoMock).getTags(); StoragePool storagePoolMock = Mockito.mock(StoragePool.class); Mockito.doReturn("A,B,C,D,X,Y").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

Test Case ID #cloudstack_Test_127_3

Test Case Name: doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEmptyAndStorageTagsNotEmpty(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: storagePoolMock

Suggested Diff
@@ @Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEmptyAndStorageTagsNotEmpty() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("").when(diskOfferingVoMock).getTags(); - StoragePool storagePoolMock = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `storagePoolMock` Mockito.lenient().doReturn("A,B,C,D,X,Y").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Original Test Code (click to expand)
@Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEmptyAndStorageTagsNotEmpty() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("").when(diskOfferingVoMock).getTags(); StoragePool storagePoolMock = Mockito.mock(StoragePool.class); Mockito.lenient().doReturn("A,B,C,D,X,Y").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

Test Case ID #cloudstack_Test_127_4

Test Case Name: doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsNotEmptyAndStorageTagsEmpty(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: storagePoolMock

Suggested Diff
@@ @Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsNotEmptyAndStorageTagsEmpty() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A").when(diskOfferingVoMock).getTags(); - StoragePool storagePoolMock = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `storagePoolMock` Mockito.doReturn("").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertFalse(result); }
Original Test Code (click to expand)
@Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsNotEmptyAndStorageTagsEmpty() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A").when(diskOfferingVoMock).getTags(); StoragePool storagePoolMock = Mockito.mock(StoragePool.class); Mockito.doReturn("").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

Test Case ID #cloudstack_Test_127_5

Test Case Name: doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEmptyAndStorageTagsEmpty(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: storagePoolMock

Suggested Diff
@@ @Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEmptyAndStorageTagsEmpty() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("").when(diskOfferingVoMock).getTags(); - StoragePool storagePoolMock = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `storagePoolMock` Mockito.lenient().doReturn("").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Original Test Code (click to expand)
@Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEmptyAndStorageTagsEmpty() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("").when(diskOfferingVoMock).getTags(); StoragePool storagePoolMock = Mockito.mock(StoragePool.class); Mockito.lenient().doReturn("").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

Test Case ID #cloudstack_Test_127_6

Test Case Name: doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsDifferentFromdStorageTags(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: storagePoolMock

Suggested Diff
@@ @Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsDifferentFromdStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A,B").when(diskOfferingVoMock).getTags(); - StoragePool storagePoolMock = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `storagePoolMock` Mockito.doReturn("C,D").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertFalse(result); }
Original Test Code (click to expand)
@Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsDifferentFromdStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A,B").when(diskOfferingVoMock).getTags(); StoragePool storagePoolMock = Mockito.mock(StoragePool.class); Mockito.doReturn("C,D").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

Test Case ID #cloudstack_Test_127_7

Test Case Name: doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEqualsStorageTags(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: storagePoolMock

Suggested Diff
@@ @Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEqualsStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A").when(diskOfferingVoMock).getTags(); - StoragePool storagePoolMock = Mockito.mock(StoragePool.class); + // removed local mock; replaced with global field `storagePoolMock` Mockito.doReturn("A").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Original Test Code (click to expand)
@Test public void doesTargetStorageSupportDiskOfferingTestDiskOfferingTagsEqualsStorageTags() { DiskOfferingVO diskOfferingVoMock = Mockito.mock(DiskOfferingVO.class); Mockito.doReturn("A").when(diskOfferingVoMock).getTags(); StoragePool storagePoolMock = Mockito.mock(StoragePool.class); Mockito.doReturn("A").when(volumeApiServiceImpl).getStoragePoolTags(storagePoolMock); boolean result = volumeApiServiceImpl.doesTargetStorageSupportDiskOffering(storagePoolMock, diskOfferingVoMock); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private StoragePool storagePoolMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { storagePoolMock = Mockito.mock(StoragePool.class); } // === Replace local variable in test with === storagePoolMock

Mock Clone Instance #cloudstack_MCI_128

Reusable Method

public class MockServiceOfferingVO { public static ServiceOfferingVO createMockServiceOfferingVO(ServiceOffering.State state) { ServiceOfferingVO serviceOfferingVO = Mockito.mock(ServiceOfferingVO.class); when(serviceOfferingVO.getState()).thenReturn(state); return serviceOfferingVO; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_128_1

Test Case Name: testCheckIfCanUpgradeFail(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: serviceOfferingMock

Suggested Diff
@@ @Test(expected = InvalidParameterValueException.class) public void testCheckIfCanUpgradeFail() { - when(serviceOfferingMock.getState()).thenReturn(ServiceOffering.State.Inactive); + serviceOfferingMock = MockServiceOfferingVO.createMockServiceOfferingVO(ServiceOffering.State.Inactive); virtualMachineManagerImpl.checkIfCanUpgrade(vmInstanceMock, serviceOfferingMock); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCheckIfCanUpgradeFail() { when(serviceOfferingMock.getState()).thenReturn(ServiceOffering.State.Inactive); virtualMachineManagerImpl.checkIfCanUpgrade(vmInstanceMock, serviceOfferingMock); }
Reusable Method for MCI (click to expand)
public class MockServiceOfferingVO { public static ServiceOfferingVO createMockServiceOfferingVO(ServiceOffering.State state) { ServiceOfferingVO serviceOfferingVO = Mockito.mock(ServiceOfferingVO.class); when(serviceOfferingVO.getState()).thenReturn(state); return serviceOfferingVO; } }

Test Case ID #cloudstack_Test_128_2

Test Case Name: createVirtualMachineWithInactiveServiceOffering(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: serviceOffering

Suggested Diff
@@ when(entityManager.findById(DataCenter.class, zoneId)).thenReturn(_dcMock); - when(entityManager.findById(ServiceOffering.class, serviceOfferingId)).thenReturn(serviceOffering); - when(serviceOffering.getState()).thenReturn(ServiceOffering.State.Inactive); + serviceOffering = MockServiceOfferingVO.createMockServiceOfferingVO(ServiceOffering.State.Inactive); + when(entityManager.findById(ServiceOffering.class, serviceOfferingId)).thenReturn(serviceOffering); userVmManagerImpl.createVirtualMachine(deployVMCmd); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void createVirtualMachineWithInactiveServiceOffering() throws ResourceUnavailableException, InsufficientCapacityException, ResourceAllocationException { DeployVMCmd deployVMCmd = new DeployVMCmd(); ReflectionTestUtils.setField(deployVMCmd, "zoneId", zoneId); ReflectionTestUtils.setField(deployVMCmd, "serviceOfferingId", serviceOfferingId); deployVMCmd._accountService = accountService; when(accountService.finalyzeAccountId(nullable(String.class), nullable(Long.class), nullable(Long.class), eq(true))).thenReturn(accountId); when(accountService.getActiveAccountById(accountId)).thenReturn(account); when(entityManager.findById(DataCenter.class, zoneId)).thenReturn(_dcMock); when(entityManager.findById(ServiceOffering.class, serviceOfferingId)).thenReturn(serviceOffering); when(serviceOffering.getState()).thenReturn(ServiceOffering.State.Inactive); userVmManagerImpl.createVirtualMachine(deployVMCmd); }
Reusable Method for MCI (click to expand)
public class MockServiceOfferingVO { public static ServiceOfferingVO createMockServiceOfferingVO(ServiceOffering.State state) { ServiceOfferingVO serviceOfferingVO = Mockito.mock(ServiceOfferingVO.class); when(serviceOfferingVO.getState()).thenReturn(state); return serviceOfferingVO; } }

Mock Clone Instance #cloudstack_MCI_129

Reusable Method

public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_129_1

Test Case Name: shutdownProviderInstancesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: tungstenProviderDao

Suggested Diff
@@ TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + tungstenProviderDao = MockTungstenProviderDao.createMockTungstenProviderDao(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); @@
Original Test Code (click to expand)
@Test public void shutdownProviderInstancesTest() throws ConcurrentOperationException { PhysicalNetworkServiceProvider physicalNetworkServiceProvider = mock(PhysicalNetworkServiceProvider.class); ReservationContext reservationContext = mock(ReservationContext.class); PhysicalNetworkVO physicalNetworkVO = mock(PhysicalNetworkVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

Test Case ID #cloudstack_Test_129_2

Test Case Name: sendTungstenCommandSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenFabricUtilsTest.java)

Mock Object Variable Name: tungstenProviderDao

Suggested Diff
@@ TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenCommand tungstenCommand = mock(TungstenCommand.class); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + tungstenProviderDao = MockTungstenProviderDao.createMockTungstenProviderDao(tungstenProviderVO); when(agentMgr.easySend(anyLong(), any(TungstenCommand.class))).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertEquals(tungstenAnswer, tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong()));
Original Test Code (click to expand)
@Test public void sendTungstenCommandSuccessTest() { TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenCommand tungstenCommand = mock(TungstenCommand.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(agentMgr.easySend(anyLong(), any(TungstenCommand.class))).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertEquals(tungstenAnswer, tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong())); }
Reusable Method for MCI (click to expand)
public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

Test Case ID #cloudstack_Test_129_3

Test Case Name: createSharedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: tungstenProviderDao

Suggested Diff
@@ when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + tungstenProviderDao = MockTungstenProviderDao.createMockTungstenProviderDao(tungstenProviderVO); when(hostDao.findByPublicIp(anyString())).thenReturn(hostVO);
Original Test Code (click to expand)
@Test public void createSharedNetworkTest() { Network network = mock(Network.class); Vlan vlan = mock(Vlan.class); AccountVO accountVO = mock(AccountVO.class); TungstenAnswer createTungstenSharedNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer addNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); HostVO hostVO = mock(HostVO.class); Answer answer = mock(Answer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); ApiObjectBase apiObjectBase = mock(ApiObjectBase.class); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenSharedNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(createTungstenSharedNetworkAnswer.getResult()).thenReturn(true); when(addNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getCidr()).thenReturn("192.168.100.0/24"); when(vlan.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlan.getVlanGateway()).thenReturn("192.168.100.1"); when(vlan.getIp6Gateway()).thenReturn("fd00::1"); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(anyString())).thenReturn(hostVO); when(agentMgr.easySend(anyLong(), any(SetupTungstenVRouterCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); when(vlan.getIp6Cidr()).thenReturn("fd00::1/64"); when(vlan.getIp6Range()).thenReturn("fd00::100-fd00::200"); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.1.150"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); when(createTungstenSharedNetworkAnswer.getApiObjectBase()).thenReturn(apiObjectBase); when(apiObjectBase.getQualifiedName()).thenReturn(List.of("network")); when(tungstenProviderVO.getGateway()).thenReturn("192.168.100.1"); assertTrue(tungstenService.createSharedNetwork(network, vlan)); }
Reusable Method for MCI (click to expand)
public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

Test Case ID #cloudstack_Test_129_4

Test Case Name: sendTungstenCommandWithNullAnswer(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenFabricUtilsTest.java)

Mock Object Variable Name: tungstenProviderDao

Suggested Diff
@@ TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenCommand tungstenCommand = mock(TungstenCommand.class); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + tungstenProviderDao = MockTungstenProviderDao.createMockTungstenProviderDao(tungstenProviderVO); tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong());
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void sendTungstenCommandWithNullAnswer() { TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenCommand tungstenCommand = mock(TungstenCommand.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong()); }
Reusable Method for MCI (click to expand)
public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

Test Case ID #cloudstack_Test_129_5

Test Case Name: sendTungstenCommandWithFalseAnswer(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenFabricUtilsTest.java)

Mock Object Variable Name: tungstenProviderDao

Suggested Diff
@@ TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenCommand tungstenCommand = mock(TungstenCommand.class); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + tungstenProviderDao = MockTungstenProviderDao.createMockTungstenProviderDao(tungstenProviderVO); when(agentMgr.easySend(anyLong(), any(TungstenCommand.class))).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(false); when(tungstenAnswer.getDetails()).thenReturn(""); tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong()); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void sendTungstenCommandWithFalseAnswer() { TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenCommand tungstenCommand = mock(TungstenCommand.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(agentMgr.easySend(anyLong(), any(TungstenCommand.class))).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(false); when(tungstenAnswer.getDetails()).thenReturn(""); tungstenFabricUtils.sendTungstenCommand(tungstenCommand, anyLong()); }
Reusable Method for MCI (click to expand)
public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

Test Case ID #cloudstack_Test_129_6

Test Case Name: testTrashSharedNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: tungstenProviderDao

Suggested Diff
@@ final Network network = mock(Network.class); final NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); final TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); final HostVO hostVO = mock(HostVO.class); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetailVO); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + tungstenProviderDao = MockTungstenProviderDao.createMockTungstenProviderDao(tungstenProviderVO); when(hostDao.findByPublicIp(any())).thenReturn(hostVO); guru.trash(network, offering); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(ClearTungstenNetworkGatewayCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong()); verify(tungstenService, times(1)).deallocateDnsIpAddress(any(), any(), anyString()); verify(agentMgr, times(1)).easySend(any(), any(SetupTungstenVRouterCommand.class)); verify(networkDetailsDao, times(1)).expunge(anyLong()); @@
Original Test Code (click to expand)
@Test public void testTrashSharedNetwork() { final Network network = mock(Network.class); final NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); final TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); final HostVO hostVO = mock(HostVO.class); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(any())).thenReturn(hostVO); guru.trash(network, offering); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(ClearTungstenNetworkGatewayCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenNetworkCommand.class), anyLong()); verify(tungstenService, times(1)).deallocateDnsIpAddress(any(), any(), anyString()); verify(agentMgr, times(1)).easySend(any(), any(SetupTungstenVRouterCommand.class)); verify(networkDetailsDao, times(1)).expunge(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

Test Case ID #cloudstack_Test_129_7

Test Case Name: listTungstenProviderWithZoneIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenProviderServiceTest.java)

Mock Object Variable Name: tungstenProviderDao

Suggested Diff
@@ TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + tungstenProviderDao = MockTungstenProviderDao.createMockTungstenProviderDao(tungstenProviderVO); List<BaseResponse> baseResponseList = tungstenProviderService.listTungstenProvider(1L);
Original Test Code (click to expand)
@Test public void listTungstenProviderWithZoneIdTest() { TungstenProviderVO tungstenProviderVO = Mockito.mock(TungstenProviderVO.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); List<BaseResponse> baseResponseList = tungstenProviderService.listTungstenProvider(1L); assertEquals(1, baseResponseList.size()); }
Reusable Method for MCI (click to expand)
public class MockTungstenProviderDao { public static TungstenProviderDao createMockTungstenProviderDao(TungstenProviderVO tungstenProviderVO) { TungstenProviderDao tungstenProviderDao = mock(TungstenProviderDao.class); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); return tungstenProviderDao; } }

Mock Clone Instance #cloudstack_MCI_130

Reusable Method

private static Logger createMockLogger() { Logger mock = Mockito.mock(Logger.class); Mockito.doNothing().when(mock).debug(Matchers.any()); return mock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_130_1

Test Case Name: testLogger(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\ScriptTest.java)

Mock Object Variable Name: mock

Suggested Diff
--- original +++ refactored @@ Assume.assumeTrue(SystemUtils.IS_OS_LINUX); - Logger mock = Mockito.mock(Logger.class); - Mockito.doNothing().when(mock).debug(Matchers.any()); + Logger mock = createMockLogger(); Script script = new Script("/bin/echo", mock); script.execute(); } @@
Original Test Code (click to expand)
@Test public void testLogger() { Assume.assumeTrue(SystemUtils.IS_OS_LINUX); Logger mock = Mockito.mock(Logger.class); Mockito.doNothing().when(mock).debug(Matchers.any()); Script script = new Script("/bin/echo", mock); script.execute(); }
Reusable Method for MCI (click to expand)
private static Logger createMockLogger() { Logger mock = Mockito.mock(Logger.class); Mockito.doNothing().when(mock).debug(Matchers.any()); return mock; }

Test Case ID #cloudstack_Test_130_2

Test Case Name: testExecute(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\ScriptTest.java)

Mock Object Variable Name: mock

Suggested Diff
--- original +++ refactored @@ Assume.assumeTrue(SystemUtils.IS_OS_LINUX); - Logger mock = Mockito.mock(Logger.class); - Mockito.doNothing().when(mock).debug(Matchers.any()); + Logger mock = createMockLogger(); for (int i = 0; i < 100000; i++) { Script script = new Script("/bin/false", mock); script.execute(); } @@
Original Test Code (click to expand)
@Test @Ignore public void testExecute() { Assume.assumeTrue(SystemUtils.IS_OS_LINUX); Logger mock = Mockito.mock(Logger.class); Mockito.doNothing().when(mock).debug(Matchers.any()); for (int i = 0; i < 100000; i++) { Script script = new Script("/bin/false", mock); script.execute(); } }
Reusable Method for MCI (click to expand)
private static Logger createMockLogger() { Logger mock = Mockito.mock(Logger.class); Mockito.doNothing().when(mock).debug(Matchers.any()); return mock; }

Mock Clone Instance #cloudstack_MCI_131

Reusable Method

private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_131_1

Test Case Name: isNativeTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO = Mockito.mock(ConditionTO.class); - CounterTO counterTO = Mockito.mock(CounterTO.class); + CounterTO counterTO = createMockCounterTO(Counter.Source.CPU); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); - when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); @@
Original Test Code (click to expand)
@Test public void isNativeTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_2

Test Case Name: isNativeFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); - CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); + CounterTO counterTO = createMockCounterTO(Counter.Source.VIRTUALROUTER); when(conditionTO.getCounter()).thenReturn(counterTO); - when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); @@
Original Test Code (click to expand)
@Test public void isNativeFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_3

Test Case Name: hasSourceVirtualRouterTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO = Mockito.mock(ConditionTO.class); - CounterTO counterTO = Mockito.mock(CounterTO.class); + CounterTO counterTO = createMockCounterTO(Counter.Source.VIRTUALROUTER); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); - when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_4

Test Case Name: hasSourceVirtualRouterFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO = Mockito.mock(ConditionTO.class); - CounterTO counterTO = Mockito.mock(CounterTO.class); + CounterTO counterTO = createMockCounterTO(Counter.Source.CPU); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); - when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_5

Test Case Name: updateCountersMap1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpCounterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + CounterTO scaleUpCounterTO = createMockCounterTO(Counter.Source.CPU); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); - when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); @@
Original Test Code (click to expand)
@Test public void updateCountersMap1() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_6

Test Case Name: updateCountersMap1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownCounterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + CounterTO scaleDownCounterTO = createMockCounterTO(Counter.Source.VIRTUALROUTER); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); - when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); - when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); @@
Original Test Code (click to expand)
@Test public void updateCountersMap1() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_7

Test Case Name: updateCountersMap2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpCounterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + CounterTO scaleUpCounterTO = createMockCounterTO(Counter.Source.VIRTUALROUTER); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); - when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); - when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO)); @@
Original Test Code (click to expand)
@Test public void updateCountersMap2() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleUpPolicyId), any())).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleDownPolicyId), any())).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 11, AutoScaleValueType.AGGREGATED_VM_GROUP, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 31, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 10 * 1000))); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 51, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 20 * 1000))); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithProcessedData(any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); // average per second Mockito.verify(autoScaleManagerImplSpy, times(1)).updateCountersMapWithProcessedData(any(), any(), any(), eq((double) 2)); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_8

Test Case Name: monitorVirtualRouterAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpCounterTO

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); + CounterTO scaleUpCounterTO = createMockCounterTO(Counter.Source.CPU); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); - when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); @@
Original Test Code (click to expand)
@Test public void monitorVirtualRouterAsGroup() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_9

Test Case Name: monitorVirtualRouterAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownCounterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + CounterTO scaleDownCounterTO = createMockCounterTO(Counter.Source.VIRTUALROUTER); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); - when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); @@
Original Test Code (click to expand)
@Test public void monitorVirtualRouterAsGroup() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_10

Test Case Name: setGetAutoScaleMetricsCommandMetrics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpCounterTO

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); + CounterTO scaleUpCounterTO = createMockCounterTO(Counter.Source.CPU); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); - when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); - when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); - when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); + when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); + when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); @@
Original Test Code (click to expand)
@Test public void setGetAutoScaleMetricsCommandMetrics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_11

Test Case Name: setGetAutoScaleMetricsCommandMetrics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownCounterTO

Suggested Diff
--- original +++ refactored @@ ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + CounterTO scaleDownCounterTO = createMockCounterTO(Counter.Source.VIRTUALROUTER); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); - when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); @@
Original Test Code (click to expand)
@Test public void setGetAutoScaleMetricsCommandMetrics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_12

Test Case Name: processGetAutoScaleMetricsAnswer(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpCounter

Suggested Diff
--- original +++ refactored @@ CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); - when(scaleUpCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); - when(scaleUpCounter.getId()).thenReturn(counterId); + CounterTO scaleUpCounter = createMockCounterTO(Counter.Source.VIRTUALROUTER); + when(scaleUpCounter.getId()).thenReturn(counterId); when(scaleDownCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounter.getId()).thenReturn(counterId); List<VirtualRouterAutoScale.AutoScaleMetrics> metrics = new ArrayList<>(); @@
Original Test Code (click to expand)
@Test public void processGetAutoScaleMetricsAnswer() { CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); when(scaleUpCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleUpCounter.getId()).thenReturn(counterId); when(scaleDownCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounter.getId()).thenReturn(counterId); List<VirtualRouterAutoScale.AutoScaleMetrics> metrics = new ArrayList<>(); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.LB_AVERAGE_CONNECTIONS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, scaleDownPolicyId, 2L, counterId, 4)); List<VirtualRouterAutoScale.AutoScaleMetricsValue> values = new ArrayList<>(); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(0), AutoScaleValueType.INSTANT_VM, Double.valueOf(1))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(1), AutoScaleValueType.INSTANT_VM, Double.valueOf(2))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(2), AutoScaleValueType.INSTANT_VM, Double.valueOf(3))); autoScaleManagerImplSpy.processGetAutoScaleMetricsAnswer(groupTO, values, domainRouterId); Mockito.verify(asGroupStatisticsDao, times(2)).persist(any()); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Test Case ID #cloudstack_Test_131_13

Test Case Name: processGetAutoScaleMetricsAnswer(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownCounter

Suggested Diff
--- original +++ refactored @@ CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); - CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); + CounterTO scaleDownCounter = createMockCounterTO(Counter.Source.VIRTUALROUTER); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); when(scaleUpCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleUpCounter.getId()).thenReturn(counterId); - when(scaleDownCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); - when(scaleDownCounter.getId()).thenReturn(counterId); @@
Original Test Code (click to expand)
@Test public void processGetAutoScaleMetricsAnswer() { CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); when(scaleUpCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleUpCounter.getId()).thenReturn(counterId); when(scaleDownCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounter.getId()).thenReturn(counterId); List<VirtualRouterAutoScale.AutoScaleMetrics> metrics = new ArrayList<>(); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.LB_AVERAGE_CONNECTIONS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, scaleDownPolicyId, 2L, counterId, 4)); List<VirtualRouterAutoScale.AutoScaleMetricsValue> values = new ArrayList<>(); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(0), AutoScaleValueType.INSTANT_VM, Double.valueOf(1))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(1), AutoScaleValueType.INSTANT_VM, Double.valueOf(2))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(2), AutoScaleValueType.INSTANT_VM, Double.valueOf(3))); autoScaleManagerImplSpy.processGetAutoScaleMetricsAnswer(groupTO, values, domainRouterId); Mockito.verify(asGroupStatisticsDao, times(2)).persist(any()); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Counter.Source source) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getSource()).thenReturn(source); return counterTO; }

Mock Clone Instance #cloudstack_MCI_132

Reusable Method

private static CounterTO createMockCounterTO(Long id) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getId()).thenReturn(id); return counterTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_132_1

Test Case Name: checkConditionsForPolicy1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO1

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); - CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); + CounterTO counterTO1 = createMockCounterTO(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy1() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Long id) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getId()).thenReturn(id); return counterTO; }

Test Case ID #cloudstack_Test_132_2

Test Case Name: checkConditionsForPolicy1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO2

Suggested Diff
@@ ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); - CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); - when(counterTO2.getId()).thenReturn(counterId2); + CounterTO counterTO2 = createMockCounterTO(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy1() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Long id) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getId()).thenReturn(id); return counterTO; }

Test Case ID #cloudstack_Test_132_3

Test Case Name: checkConditionsForPolicy2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO1

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); - CounterTO counterTO1 = Mockito.mock(CounterTO.class); + CounterTO counterTO1 = createMockCounterTO(counterId); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); - when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy2() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Long id) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getId()).thenReturn(id); return counterTO; }

Test Case ID #cloudstack_Test_132_4

Test Case Name: checkConditionsForPolicy2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO2

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); - CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); - when(counterTO2.getId()).thenReturn(counterId2); + CounterTO counterTO2 = createMockCounterTO(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy2() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(Long id) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getId()).thenReturn(id); return counterTO; }

Mock Clone Instance #cloudstack_MCI_133

Reusable Method

private static CounterTO createMockCounterTO(String nameReturn) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getName()).thenReturn(nameReturn); return counterTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_133_1

Test Case Name: setPerformanceMonitorCommandParams(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO1

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); - CounterTO counterTO1 = Mockito.mock(CounterTO.class); + CounterTO counterTO1 = createMockCounterTO(counterName + "-1"); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); - when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); @@
Original Test Code (click to expand)
@Test public void setPerformanceMonitorCommandParams() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(String nameReturn) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getName()).thenReturn(nameReturn); return counterTO; }

Test Case ID #cloudstack_Test_133_2

Test Case Name: setPerformanceMonitorCommandParams(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO2

Suggested Diff
@@ ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); - CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); - when(counterTO2.getName()).thenReturn(counterName + "-2"); + CounterTO counterTO2 = createMockCounterTO(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); @@
Original Test Code (click to expand)
@Test public void setPerformanceMonitorCommandParams() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); }
Reusable Method for MCI (click to expand)
private static CounterTO createMockCounterTO(String nameReturn) { CounterTO counterTO = Mockito.mock(CounterTO.class); when(counterTO.getName()).thenReturn(nameReturn); return counterTO; }

Mock Clone Instance #cloudstack_MCI_134

Reusable Method

// === Declare in class scope === private CounterTO counterTO1; // === Add to @BeforeEach method === @BeforeEach public void setUp() { counterTO1 = Mockito.mock(CounterTO.class); } // === Replace local variable in test with === counterTO1

The refactoring details in each test cases


Test Case ID #cloudstack_Test_134_1

Test Case Name: getPolicyCounters(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: counterTO1

Suggested Diff
@@ @Test public void getPolicyCounters() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); - CounterTO counterTO1 = Mockito.mock(CounterTO.class); + // removed local mock; replaced with global field `counterTO1` ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); - when(conditionTO1.getCounter()).thenReturn(counterTO1); + when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); - Assert.assertTrue(counters.contains(counterTO1)); + Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); }
Original Test Code (click to expand)
@Test public void getPolicyCounters() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private CounterTO counterTO1; // === Add to @BeforeEach method === @BeforeEach public void setUp() { counterTO1 = Mockito.mock(CounterTO.class); } // === Replace local variable in test with === counterTO1

Test Case ID #cloudstack_Test_134_2

Test Case Name: getVmStatsFromHosts(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpCounter

Suggested Diff
@@ hostAndVmIdsMap.put(1L, Arrays.asList(2L, 3L)); hostAndVmIdsMap.put(4L, Arrays.asList(5L, 6L)); - CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); + // removed local mock; replaced with global field `counterTO1` CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); - policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); + policyCountersMap.put(scaleUpPolicyId, Arrays.asList(counterTO1)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class);
Original Test Code (click to expand)
@Test public void getVmStatsFromHosts() { Map<Long, List<Long>> hostAndVmIdsMap = new HashMap<>(); hostAndVmIdsMap.put(1L, Arrays.asList(2L, 3L)); hostAndVmIdsMap.put(4L, Arrays.asList(5L, 6L)); CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); PowerMockito.doReturn(hostAndVmIdsMap).when(autoScaleManagerImplSpy).getHostAndVmIdsMap(groupTO); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); Map<Long, VmStatsEntry> vmStatsById = new HashMap<>(); PowerMockito.doReturn(vmStatsById).doReturn(vmStatsById).when(autoScaleManagerImplSpy).getVmStatsByIdFromHost(anyLong(), any()); PowerMockito.doNothing().doNothing().when(autoScaleManagerImplSpy).processVmStatsByIdFromHost(any(), any(), any(), any()); autoScaleManagerImplSpy.getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy, times(2)).getVmStatsByIdFromHost(anyLong(), any()); Mockito.verify(autoScaleManagerImplSpy, times(2)).processVmStatsByIdFromHost(any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private CounterTO counterTO1; // === Add to @BeforeEach method === @BeforeEach public void setUp() { counterTO1 = Mockito.mock(CounterTO.class); } // === Replace local variable in test with === counterTO1

Mock Clone Instance #cloudstack_MCI_135

Reusable Method

// === Declare in class scope === private DataStore dataStore; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dataStore = mock(DataStore.class); } // === Replace local variable in test with === dataStore;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_135_1

Test Case Name: testAttachZone_UnsupportedHypervisor(File: C:\Java_projects\Apache\cloudstack\plugins\storage\volume\scaleio\src\test\java\org\apache\cloudstack\storage\datastore\lifecycle\ScaleIOPrimaryDataStoreLifeCycleTest.java)

Mock Object Variable Name: dataStore

Suggested Diff
@@ @Test(expected = CloudRuntimeException.class) public void testAttachZone_UnsupportedHypervisor() throws Exception { - final DataStore dataStore = mock(DataStore.class); + // removed local mock; replaced with global field `dataStore` final ZoneScope scope = new ZoneScope(1L); scaleIOPrimaryDataStoreLifeCycleTest.attachZone(dataStore, scope, Hypervisor.HypervisorType.VMware); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testAttachZone_UnsupportedHypervisor() throws Exception { final DataStore dataStore = mock(DataStore.class); final ZoneScope scope = new ZoneScope(1L); scaleIOPrimaryDataStoreLifeCycleTest.attachZone(dataStore, scope, Hypervisor.HypervisorType.VMware); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataStore dataStore; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dataStore = mock(DataStore.class); } // === Replace local variable in test with === dataStore;

Test Case ID #cloudstack_Test_135_2

Test Case Name: testMaintain(File: C:\Java_projects\Apache\cloudstack\plugins\storage\volume\scaleio\src\test\java\org\apache\cloudstack\storage\datastore\lifecycle\ScaleIOPrimaryDataStoreLifeCycleTest.java)

Mock Object Variable Name: store

Suggested Diff
@@ @Test public void testMaintain() { - final DataStore store = mock(DataStore.class); + // removed local mock; replaced with global field `dataStore` when(storagePoolAutomation.maintain(any(DataStore.class))).thenReturn(true); when(dataStoreHelper.maintain(any(DataStore.class))).thenReturn(true); - final boolean result = scaleIOPrimaryDataStoreLifeCycleTest.maintain(store); + final boolean result = scaleIOPrimaryDataStoreLifeCycleTest.maintain(dataStore); assertThat(result).isTrue(); }
Original Test Code (click to expand)
@Test public void testMaintain() { final DataStore store = mock(DataStore.class); when(storagePoolAutomation.maintain(any(DataStore.class))).thenReturn(true); when(dataStoreHelper.maintain(any(DataStore.class))).thenReturn(true); final boolean result = scaleIOPrimaryDataStoreLifeCycleTest.maintain(store); assertThat(result).isTrue(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataStore dataStore; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dataStore = mock(DataStore.class); } // === Replace local variable in test with === dataStore;

Test Case ID #cloudstack_Test_135_3

Test Case Name: testCancelMaintain(File: C:\Java_projects\Apache\cloudstack\plugins\storage\volume\scaleio\src\test\java\org\apache\cloudstack\storage\datastore\lifecycle\ScaleIOPrimaryDataStoreLifeCycleTest.java)

Mock Object Variable Name: store

Suggested Diff
@@ @Test public void testCancelMaintain() { - final DataStore store = mock(DataStore.class); + // removed local mock; replaced with global field `dataStore` when(dataStoreHelper.cancelMaintain(any(DataStore.class))).thenReturn(true); when(storagePoolAutomation.cancelMaintain(any(DataStore.class))).thenReturn(true); - final boolean result = scaleIOPrimaryDataStoreLifeCycleTest.cancelMaintain(store); + final boolean result = scaleIOPrimaryDataStoreLifeCycleTest.cancelMaintain(dataStore); assertThat(result).isTrue(); }
Original Test Code (click to expand)
@Test public void testCancelMaintain() { final DataStore store = mock(DataStore.class); when(dataStoreHelper.cancelMaintain(any(DataStore.class))).thenReturn(true); when(storagePoolAutomation.cancelMaintain(any(DataStore.class))).thenReturn(true); final boolean result = scaleIOPrimaryDataStoreLifeCycleTest.cancelMaintain(store); assertThat(result).isTrue(); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataStore dataStore; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dataStore = mock(DataStore.class); } // === Replace local variable in test with === dataStore;

Test Case ID #cloudstack_Test_135_4

Test Case Name: testEnableStoragePool(File: C:\Java_projects\Apache\cloudstack\plugins\storage\volume\scaleio\src\test\java\org\apache\cloudstack\storage\datastore\lifecycle\ScaleIOPrimaryDataStoreLifeCycleTest.java)

Mock Object Variable Name: dataStore

Suggested Diff
@@ @Test public void testEnableStoragePool() { - final DataStore dataStore = mock(DataStore.class); + // removed local mock; replaced with global field `dataStore` when(dataStoreHelper.enable(any(DataStore.class))).thenReturn(true); scaleIOPrimaryDataStoreLifeCycleTest.enableStoragePool(dataStore); }
Original Test Code (click to expand)
@Test public void testEnableStoragePool() { final DataStore dataStore = mock(DataStore.class); when(dataStoreHelper.enable(any(DataStore.class))).thenReturn(true); scaleIOPrimaryDataStoreLifeCycleTest.enableStoragePool(dataStore); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataStore dataStore; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dataStore = mock(DataStore.class); } // === Replace local variable in test with === dataStore;

Test Case ID #cloudstack_Test_135_5

Test Case Name: testDisableStoragePool(File: C:\Java_projects\Apache\cloudstack\plugins\storage\volume\scaleio\src\test\java\org\apache\cloudstack\storage\datastore\lifecycle\ScaleIOPrimaryDataStoreLifeCycleTest.java)

Mock Object Variable Name: dataStore

Suggested Diff
@@ @Test public void testDisableStoragePool() { - final DataStore dataStore = mock(DataStore.class); + // removed local mock; replaced with global field `dataStore` when(dataStoreHelper.disable(any(DataStore.class))).thenReturn(true); scaleIOPrimaryDataStoreLifeCycleTest.disableStoragePool(dataStore); }
Original Test Code (click to expand)
@Test public void testDisableStoragePool() { final DataStore dataStore = mock(DataStore.class); when(dataStoreHelper.disable(any(DataStore.class))).thenReturn(true); scaleIOPrimaryDataStoreLifeCycleTest.disableStoragePool(dataStore); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataStore dataStore; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dataStore = mock(DataStore.class); } // === Replace local variable in test with === dataStore;

Mock Clone Instance #cloudstack_MCI_136

Reusable Method

private static DataStore createMockDataStore(Long idReturn, DataStoreRole roleReturn, ZoneScope scopeReturn) { DataStore dataStore = mock(DataStore.class); when(dataStore.getId()).thenReturn(idReturn); when(dataStore.getRole()).thenReturn(roleReturn); when(dataStore.getScope()).thenReturn(scopeReturn); return dataStore; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_136_1

Test Case Name: testMixZonePrimaryStorages(File: C:\Java_projects\Apache\cloudstack\engine\storage\integration-test\src\test\java\org\apache\cloudstack\storage\test\EndpointSelectorTest.java)

Mock Object Variable Name: srcStore

Suggested Diff
--- original +++ refactored @@ ZoneScope srcScope = new ZoneScope(dcId); - DataStore srcStore = mock(DataStore.class); - DataStore destStore = mock(DataStore.class); - when(srcStore.getScope()).thenReturn(srcScope); - when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); - when(srcStore.getId()).thenReturn(srcStoreId); + DataStore srcStore = createMockDataStore(srcStoreId, DataStoreRole.Primary, srcScope); + DataStore destStore = mock(DataStore.class); when(destStore.getScope()).thenReturn(srcScope); when(destStore.getRole()).thenReturn(DataStoreRole.Image); when(destStore.getId()).thenReturn(destStoreId); DataObject srcObj = mock(DataObject.class); DataObject destObj = mock(DataObject.class); when(srcObj.getDataStore()).thenReturn(srcStore); when(destObj.getDataStore()).thenReturn(destStore); EndPoint ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); Long hostId = ep.getId(); HostVO newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); - when(srcStore.getRole()).thenReturn(DataStoreRole.Image); - when(srcStore.getId()).thenReturn(destStoreId); + when(srcStore.getRole()).thenReturn(DataStoreRole.Image); + when(srcStore.getId()).thenReturn(destStoreId); when(destStore.getId()).thenReturn(srcStoreId); when(destStore.getRole()).thenReturn(DataStoreRole.Primary); ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); hostId = ep.getId(); newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); ClusterScope clusterScope = new ClusterScope(clusterId, podId, dcId); - when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); - when(srcStore.getScope()).thenReturn(clusterScope); - when(srcStore.getId()).thenReturn(xenStoreId); + when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); + when(srcStore.getScope()).thenReturn(clusterScope); + when(srcStore.getId()).thenReturn(xenStoreId); ep = endPointSelector.select(srcStore); Assert.assertTrue(ep != null); newHost = hostDao.findById(ep.getId()); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.XenServer); }
Original Test Code (click to expand)
@Test public void testMixZonePrimaryStorages() { Long srcStoreId = null; Long destStoreId = imageStore.getId(); DataStore store = createPrimaryDataStore(ScopeType.ZONE); srcStoreId = store.getId(); HostVO host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.ZONE); host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); Long xenStoreId = null; store = createPrimaryDataStore(ScopeType.CLUSTER); xenStoreId = store.getId(); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.CLUSTER); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); ZoneScope srcScope = new ZoneScope(dcId); DataStore srcStore = mock(DataStore.class); DataStore destStore = mock(DataStore.class); when(srcStore.getScope()).thenReturn(srcScope); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getId()).thenReturn(srcStoreId); when(destStore.getScope()).thenReturn(srcScope); when(destStore.getRole()).thenReturn(DataStoreRole.Image); when(destStore.getId()).thenReturn(destStoreId); DataObject srcObj = mock(DataObject.class); DataObject destObj = mock(DataObject.class); when(srcObj.getDataStore()).thenReturn(srcStore); when(destObj.getDataStore()).thenReturn(destStore); EndPoint ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); Long hostId = ep.getId(); HostVO newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); when(srcStore.getRole()).thenReturn(DataStoreRole.Image); when(srcStore.getId()).thenReturn(destStoreId); when(destStore.getId()).thenReturn(srcStoreId); when(destStore.getRole()).thenReturn(DataStoreRole.Primary); ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); hostId = ep.getId(); newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); ClusterScope clusterScope = new ClusterScope(clusterId, podId, dcId); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getScope()).thenReturn(clusterScope); when(srcStore.getId()).thenReturn(xenStoreId); ep = endPointSelector.select(srcStore); Assert.assertTrue(ep != null); newHost = hostDao.findById(ep.getId()); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.XenServer); }
Reusable Method for MCI (click to expand)
private static DataStore createMockDataStore(Long idReturn, DataStoreRole roleReturn, ZoneScope scopeReturn) { DataStore dataStore = mock(DataStore.class); when(dataStore.getId()).thenReturn(idReturn); when(dataStore.getRole()).thenReturn(roleReturn); when(dataStore.getScope()).thenReturn(scopeReturn); return dataStore; }

Test Case ID #cloudstack_Test_136_2

Test Case Name: testMixZonePrimaryStorages(File: C:\Java_projects\Apache\cloudstack\engine\storage\integration-test\src\test\java\org\apache\cloudstack\storage\test\EndpointSelectorTest.java)

Mock Object Variable Name: destStore

Suggested Diff
--- original +++ refactored @@ DataStore srcStore = mock(DataStore.class); - DataStore destStore = mock(DataStore.class); - when(destStore.getScope()).thenReturn(srcScope); - when(destStore.getRole()).thenReturn(DataStoreRole.Image); - when(destStore.getId()).thenReturn(destStoreId); + DataStore destStore = createMockDataStore(destStoreId, DataStoreRole.Image, srcScope); DataObject srcObj = mock(DataObject.class); DataObject destObj = mock(DataObject.class); when(srcObj.getDataStore()).thenReturn(srcStore); when(destObj.getDataStore()).thenReturn(destStore); EndPoint ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); Long hostId = ep.getId(); HostVO newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); when(srcStore.getRole()).thenReturn(DataStoreRole.Image); when(srcStore.getId()).thenReturn(destStoreId); - when(destStore.getId()).thenReturn(srcStoreId); - when(destStore.getRole()).thenReturn(DataStoreRole.Primary); + when(destStore.getId()).thenReturn(srcStoreId); + when(destStore.getRole()).thenReturn(DataStoreRole.Primary); ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); hostId = ep.getId(); newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); ClusterScope clusterScope = new ClusterScope(clusterId, podId, dcId); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getScope()).thenReturn(clusterScope); when(srcStore.getId()).thenReturn(xenStoreId); ep = endPointSelector.select(srcStore); Assert.assertTrue(ep != null); newHost = hostDao.findById(ep.getId()); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.XenServer); }
Original Test Code (click to expand)
@Test public void testMixZonePrimaryStorages() { Long srcStoreId = null; Long destStoreId = imageStore.getId(); DataStore store = createPrimaryDataStore(ScopeType.ZONE); srcStoreId = store.getId(); HostVO host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.ZONE); host = createHost(Hypervisor.HypervisorType.VMware); addStorageToHost(store, host); Long xenStoreId = null; store = createPrimaryDataStore(ScopeType.CLUSTER); xenStoreId = store.getId(); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); store = createPrimaryDataStore(ScopeType.CLUSTER); host = createHost(Hypervisor.HypervisorType.XenServer); addStorageToHost(store, host); ZoneScope srcScope = new ZoneScope(dcId); DataStore srcStore = mock(DataStore.class); DataStore destStore = mock(DataStore.class); when(srcStore.getScope()).thenReturn(srcScope); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getId()).thenReturn(srcStoreId); when(destStore.getScope()).thenReturn(srcScope); when(destStore.getRole()).thenReturn(DataStoreRole.Image); when(destStore.getId()).thenReturn(destStoreId); DataObject srcObj = mock(DataObject.class); DataObject destObj = mock(DataObject.class); when(srcObj.getDataStore()).thenReturn(srcStore); when(destObj.getDataStore()).thenReturn(destStore); EndPoint ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); Long hostId = ep.getId(); HostVO newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); when(srcStore.getRole()).thenReturn(DataStoreRole.Image); when(srcStore.getId()).thenReturn(destStoreId); when(destStore.getId()).thenReturn(srcStoreId); when(destStore.getRole()).thenReturn(DataStoreRole.Primary); ep = endPointSelector.select(srcObj, destObj); Assert.assertTrue(ep != null); hostId = ep.getId(); newHost = hostDao.findById(hostId); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.VMware); ClusterScope clusterScope = new ClusterScope(clusterId, podId, dcId); when(srcStore.getRole()).thenReturn(DataStoreRole.Primary); when(srcStore.getScope()).thenReturn(clusterScope); when(srcStore.getId()).thenReturn(xenStoreId); ep = endPointSelector.select(srcStore); Assert.assertTrue(ep != null); newHost = hostDao.findById(ep.getId()); Assert.assertTrue(newHost.getHypervisorType() == Hypervisor.HypervisorType.XenServer); }
Reusable Method for MCI (click to expand)
private static DataStore createMockDataStore(Long idReturn, DataStoreRole roleReturn, ZoneScope scopeReturn) { DataStore dataStore = mock(DataStore.class); when(dataStore.getId()).thenReturn(idReturn); when(dataStore.getRole()).thenReturn(roleReturn); when(dataStore.getScope()).thenReturn(scopeReturn); return dataStore; }

Mock Clone Instance #cloudstack_MCI_137

Reusable Method

public class MockRole { public static Role createMockRole(String description, String name, RoleType roleType, String uuid) { Role role = Mockito.mock(Role.class); when(role.getDescription()).thenReturn(description); when(role.getName()).thenReturn(name); when(role.getRoleType()).thenReturn(roleType); when(role.getUuid()).thenReturn(uuid); return role; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_137_1

Test Case Name: testCreateRoleWithExistingRole(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\CreateRoleCmdTest.java)

Mock Object Variable Name: newRole

Suggested Diff
--- original +++ refactored @@ when(roleService.findRole(createRoleCmd.getRoleId())).thenReturn(role); - Role newRole = Mockito.mock(Role.class); - when(newRole.getId()).thenReturn(2L); - when(newRole.getUuid()).thenReturn("67890-xyztestid"); - when(newRole.getDescription()).thenReturn("User test"); - when(newRole.getName()).thenReturn("testuser"); - when(newRole.getRoleType()).thenReturn(RoleType.User); + Role newRole = MockRole.createMockRole("User test", "testuser", RoleType.User, "67890-xyztestid"); + when(newRole.getId()).thenReturn(2L); when(roleService.createRole(createRoleCmd.getRoleName(), role, createRoleCmd.getRoleDescription())).thenReturn(newRole); createRoleCmd.execute(); RoleResponse response = (RoleResponse) createRoleCmd.getResponseObject(); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), newRole.getName()); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), newRole.getDescription()); @@
Original Test Code (click to expand)
@Test public void testCreateRoleWithExistingRole() { ReflectionTestUtils.setField(createRoleCmd, "roleId", 1L); when(roleService.findRole(createRoleCmd.getRoleId())).thenReturn(role); Role newRole = Mockito.mock(Role.class); when(newRole.getId()).thenReturn(2L); when(newRole.getUuid()).thenReturn("67890-xyztestid"); when(newRole.getDescription()).thenReturn("User test"); when(newRole.getName()).thenReturn("testuser"); when(newRole.getRoleType()).thenReturn(RoleType.User); when(roleService.createRole(createRoleCmd.getRoleName(), role, createRoleCmd.getRoleDescription())).thenReturn(newRole); createRoleCmd.execute(); RoleResponse response = (RoleResponse) createRoleCmd.getResponseObject(); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), newRole.getName()); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), newRole.getDescription()); }
Reusable Method for MCI (click to expand)
public class MockRole { public static Role createMockRole(String description, String name, RoleType roleType, String uuid) { Role role = Mockito.mock(Role.class); when(role.getDescription()).thenReturn(description); when(role.getName()).thenReturn(name); when(role.getRoleType()).thenReturn(roleType); when(role.getUuid()).thenReturn(uuid); return role; } }

Test Case ID #cloudstack_Test_137_2

Test Case Name: testCreateRoleWithRoleType(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\CreateRoleCmdTest.java)

Mock Object Variable Name: role

Suggested Diff
@@ ReflectionTestUtils.setField(createRoleCmd, "roleType", "User"); - when(role.getId()).thenReturn(1L); - when(role.getUuid()).thenReturn("12345-abcgdkajd"); - when(role.getDescription()).thenReturn("User test"); - when(role.getName()).thenReturn("testuser"); - when(role.getRoleType()).thenReturn(RoleType.User); + role = MockRole.createMockRole("User test", "testuser", RoleType.User, "12345-abcgdkajd"); + when(role.getId()).thenReturn(1L); when(roleService.createRole(createRoleCmd.getRoleName(), createRoleCmd.getRoleType(), createRoleCmd.getRoleDescription())).thenReturn(role); createRoleCmd.execute(); RoleResponse response = (RoleResponse) createRoleCmd.getResponseObject(); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), role.getName()); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), role.getDescription()); }
Original Test Code (click to expand)
@Test public void testCreateRoleWithRoleType() { ReflectionTestUtils.setField(createRoleCmd, "roleType", "User"); when(role.getId()).thenReturn(1L); when(role.getUuid()).thenReturn("12345-abcgdkajd"); when(role.getDescription()).thenReturn("User test"); when(role.getName()).thenReturn("testuser"); when(role.getRoleType()).thenReturn(RoleType.User); when(roleService.createRole(createRoleCmd.getRoleName(), createRoleCmd.getRoleType(), createRoleCmd.getRoleDescription())).thenReturn(role); createRoleCmd.execute(); RoleResponse response = (RoleResponse) createRoleCmd.getResponseObject(); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), role.getName()); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), role.getDescription()); } @Before public void setUp() { roleService = Mockito.spy(RoleService.class); createRoleCmd = new CreateRoleCmd(); ReflectionTestUtils.setField(createRoleCmd, "roleService", roleService); ReflectionTestUtils.setField(createRoleCmd, "roleName", "testuser"); ReflectionTestUtils.setField(createRoleCmd, "roleDescription", "User test"); role = Mockito.mock(Role.class); }
Reusable Method for MCI (click to expand)
public class MockRole { public static Role createMockRole(String description, String name, RoleType roleType, String uuid) { Role role = Mockito.mock(Role.class); when(role.getDescription()).thenReturn(description); when(role.getName()).thenReturn(name); when(role.getRoleType()).thenReturn(roleType); when(role.getUuid()).thenReturn(uuid); return role; } }

Test Case ID #cloudstack_Test_137_3

Test Case Name: testImportRoleSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\ImportRoleCmdTest.java)

Mock Object Variable Name: role

Suggested Diff
@@ ReflectionTestUtils.setField(importRoleCmd, "rules", rules); - when(role.getUuid()).thenReturn("12345-abcgdkajd"); - when(role.getDescription()).thenReturn("test user imported"); - when(role.getName()).thenReturn("Test User"); - when(role.getRoleType()).thenReturn(RoleType.User); + role = MockRole.createMockRole("test user imported", "Test User", RoleType.User, "12345-abcgdkajd"); when(roleService.importRole(anyString(), any(), anyString(), any(), anyBoolean())).thenReturn(role); importRoleCmd.execute(); RoleResponse response = (RoleResponse) importRoleCmd.getResponseObject(); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), role.getName()); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), role.getDescription()); }
Original Test Code (click to expand)
@Before public void setUp() { roleService = Mockito.spy(RoleService.class); importRoleCmd = new ImportRoleCmd(); ReflectionTestUtils.setField(importRoleCmd, "roleService", roleService); ReflectionTestUtils.setField(importRoleCmd, "roleName", "Test User"); ReflectionTestUtils.setField(importRoleCmd, "roleType", "User"); ReflectionTestUtils.setField(importRoleCmd, "roleDescription", "test user imported"); role = Mockito.mock(Role.class); } @Test public void testImportRoleSuccess() { Map<String, Map<String, String>> rules = new HashMap<String, Map<String, String>>(); //Rule 1 Map<String, String> rule1 = new HashMap<String, String>(); rule1.put(ApiConstants.RULE, "list*"); rule1.put(ApiConstants.PERMISSION, "allow"); rule1.put(ApiConstants.DESCRIPTION, "listing apis"); rules.put("key1", rule1); //Rule 2 Map<String, String> rule2 = new HashMap<String, String>(); rule2.put(ApiConstants.RULE, "update*"); rule2.put(ApiConstants.PERMISSION, "deny"); rule2.put(ApiConstants.DESCRIPTION, "no update allowed"); rules.put("key2", rule2); //Rule 3 Map<String, String> rule3 = new HashMap<String, String>(); rule3.put(ApiConstants.RULE, "get*"); rule3.put(ApiConstants.PERMISSION, "allow"); rule3.put(ApiConstants.DESCRIPTION, "get details"); rules.put("key3", rule3); ReflectionTestUtils.setField(importRoleCmd, "rules", rules); when(role.getUuid()).thenReturn("12345-abcgdkajd"); when(role.getDescription()).thenReturn("test user imported"); when(role.getName()).thenReturn("Test User"); when(role.getRoleType()).thenReturn(RoleType.User); when(roleService.importRole(anyString(), any(), anyString(), any(), anyBoolean())).thenReturn(role); importRoleCmd.execute(); RoleResponse response = (RoleResponse) importRoleCmd.getResponseObject(); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), role.getName()); Assert.assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), role.getDescription()); }
Reusable Method for MCI (click to expand)
public class MockRole { public static Role createMockRole(String description, String name, RoleType roleType, String uuid) { Role role = Mockito.mock(Role.class); when(role.getDescription()).thenReturn(description); when(role.getName()).thenReturn(name); when(role.getRoleType()).thenReturn(roleType); when(role.getUuid()).thenReturn(uuid); return role; } }

Test Case ID #cloudstack_Test_137_4

Test Case Name: testUpdateSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\UpdateRoleCmdTest.java)

Mock Object Variable Name: role

Suggested Diff
@@ when(roleService.findRole(updateRoleCmd.getRoleId())).thenReturn(role); - when(role.getId()).thenReturn(1L); - when(role.getUuid()).thenReturn("12345-abcgdkajd"); - when(role.getDescription()).thenReturn("Default user"); - when(role.getName()).thenReturn("User"); - when(role.getRoleType()).thenReturn(RoleType.User); + role = MockRole.createMockRole("Default user", "User", RoleType.User, "12345-abcgdkajd"); + when(role.getId()).thenReturn(1L); when(roleService.updateRole(role, updateRoleCmd.getRoleName(), updateRoleCmd.getRoleType(), updateRoleCmd.getRoleDescription())).thenReturn(role); when(role.getId()).thenReturn(1L); when(role.getDescription()).thenReturn("Description Initial"); when(role.getName()).thenReturn("User"); updateRoleCmd.execute(); RoleResponse response = (RoleResponse) updateRoleCmd.getResponseObject(); assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), role.getName()); assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), role.getDescription()); @@
Original Test Code (click to expand)
@Override @Before public void setUp() { roleService = Mockito.spy(RoleService.class); updateRoleCmd = new UpdateRoleCmd(); ReflectionTestUtils.setField(updateRoleCmd, "roleService", roleService); ReflectionTestUtils.setField(updateRoleCmd, "roleId", 1L); ReflectionTestUtils.setField(updateRoleCmd, "roleName", "user"); ReflectionTestUtils.setField(updateRoleCmd, "roleType", "User"); ReflectionTestUtils.setField(updateRoleCmd, "roleDescription", "Description Initial"); role = Mockito.mock(Role.class); } @Test public void testUpdateSuccess() { when(roleService.findRole(updateRoleCmd.getRoleId())).thenReturn(role); when(role.getId()).thenReturn(1L); when(role.getUuid()).thenReturn("12345-abcgdkajd"); when(role.getDescription()).thenReturn("Default user"); when(role.getName()).thenReturn("User"); when(role.getRoleType()).thenReturn(RoleType.User); when(roleService.updateRole(role, updateRoleCmd.getRoleName(), updateRoleCmd.getRoleType(), updateRoleCmd.getRoleDescription())).thenReturn(role); when(role.getId()).thenReturn(1L); when(role.getDescription()).thenReturn("Description Initial"); when(role.getName()).thenReturn("User"); updateRoleCmd.execute(); RoleResponse response = (RoleResponse) updateRoleCmd.getResponseObject(); assertEquals((String) ReflectionTestUtils.getField(response, "roleName"), role.getName()); assertEquals((String) ReflectionTestUtils.getField(response, "roleDescription"), role.getDescription()); }
Reusable Method for MCI (click to expand)
public class MockRole { public static Role createMockRole(String description, String name, RoleType roleType, String uuid) { Role role = Mockito.mock(Role.class); when(role.getDescription()).thenReturn(description); when(role.getName()).thenReturn(name); when(role.getRoleType()).thenReturn(roleType); when(role.getUuid()).thenReturn(uuid); return role; } }

Mock Clone Instance #cloudstack_MCI_138

Reusable Method

private static Role createMockRole(RoleType roleType) { Role role = Mockito.mock(Role.class); Mockito.doReturn(roleType).when(role).getRoleType(); return role; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_138_1

Test Case Name: removeRootAdminRolesTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\acl\RoleManagerImplTest.java)

Mock Object Variable Name: roleRootAdmin

Suggested Diff
--- original +++ refactored @@ List<Role> roles = new ArrayList<>(); - Role roleRootAdmin = Mockito.mock(Role.class); - Mockito.doReturn(RoleType.Admin).when(roleRootAdmin).getRoleType(); + Role roleRootAdmin = createMockRole(RoleType.Admin); Role roleDomainAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.DomainAdmin).when(roleDomainAdmin).getRoleType(); Role roleResourceAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); Role roleUser = Mockito.mock(Role.class); Mockito.doReturn(RoleType.User).when(roleUser).getRoleType(); roles.add(roleRootAdmin); roles.add(roleDomainAdmin); roles.add(roleResourceAdmin); roles.add(roleUser); roleManagerImpl.removeRootAdminRoles(roles); Assert.assertEquals(3, roles.size()); Assert.assertEquals(roleDomainAdmin, roles.get(0)); Assert.assertEquals(roleResourceAdmin, roles.get(1)); Assert.assertEquals(roleUser, roles.get(2)); @@
Original Test Code (click to expand)
@Test public void removeRootAdminRolesTest() { List<Role> roles = new ArrayList<>(); Role roleRootAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.Admin).when(roleRootAdmin).getRoleType(); Role roleDomainAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.DomainAdmin).when(roleDomainAdmin).getRoleType(); Role roleResourceAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); Role roleUser = Mockito.mock(Role.class); Mockito.doReturn(RoleType.User).when(roleUser).getRoleType(); roles.add(roleRootAdmin); roles.add(roleDomainAdmin); roles.add(roleResourceAdmin); roles.add(roleUser); roleManagerImpl.removeRootAdminRoles(roles); Assert.assertEquals(3, roles.size()); Assert.assertEquals(roleDomainAdmin, roles.get(0)); Assert.assertEquals(roleResourceAdmin, roles.get(1)); Assert.assertEquals(roleUser, roles.get(2)); }
Reusable Method for MCI (click to expand)
private static Role createMockRole(RoleType roleType) { Role role = Mockito.mock(Role.class); Mockito.doReturn(roleType).when(role).getRoleType(); return role; }

Test Case ID #cloudstack_Test_138_2

Test Case Name: removeRootAdminRolesTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\acl\RoleManagerImplTest.java)

Mock Object Variable Name: roleDomainAdmin

Suggested Diff
--- original +++ refactored @@ Role roleRootAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.Admin).when(roleRootAdmin).getRoleType(); - Role roleDomainAdmin = Mockito.mock(Role.class); - Mockito.doReturn(RoleType.DomainAdmin).when(roleDomainAdmin).getRoleType(); + Role roleDomainAdmin = createMockRole(RoleType.DomainAdmin); Role roleResourceAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); @@
Original Test Code (click to expand)
@Test public void removeRootAdminRolesTest() { List<Role> roles = new ArrayList<>(); Role roleRootAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.Admin).when(roleRootAdmin).getRoleType(); Role roleDomainAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.DomainAdmin).when(roleDomainAdmin).getRoleType(); Role roleResourceAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); Role roleUser = Mockito.mock(Role.class); Mockito.doReturn(RoleType.User).when(roleUser).getRoleType(); roles.add(roleRootAdmin); roles.add(roleDomainAdmin); roles.add(roleResourceAdmin); roles.add(roleUser); roleManagerImpl.removeRootAdminRoles(roles); Assert.assertEquals(3, roles.size()); Assert.assertEquals(roleDomainAdmin, roles.get(0)); Assert.assertEquals(roleResourceAdmin, roles.get(1)); Assert.assertEquals(roleUser, roles.get(2)); }
Reusable Method for MCI (click to expand)
private static Role createMockRole(RoleType roleType) { Role role = Mockito.mock(Role.class); Mockito.doReturn(roleType).when(role).getRoleType(); return role; }

Test Case ID #cloudstack_Test_138_3

Test Case Name: removeRootAdminRolesTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\acl\RoleManagerImplTest.java)

Mock Object Variable Name: roleResourceAdmin

Suggested Diff
--- original +++ refactored @@ Role roleRootAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.Admin).when(roleRootAdmin).getRoleType(); Role roleDomainAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.DomainAdmin).when(roleDomainAdmin).getRoleType(); - Role roleResourceAdmin = Mockito.mock(Role.class); - Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); + Role roleResourceAdmin = createMockRole(RoleType.ResourceAdmin); Role roleUser = Mockito.mock(Role.class); Mockito.doReturn(RoleType.User).when(roleUser).getRoleType(); roles.add(roleRootAdmin); @@
Original Test Code (click to expand)
@Test public void removeRootAdminRolesTest() { List<Role> roles = new ArrayList<>(); Role roleRootAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.Admin).when(roleRootAdmin).getRoleType(); Role roleDomainAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.DomainAdmin).when(roleDomainAdmin).getRoleType(); Role roleResourceAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); Role roleUser = Mockito.mock(Role.class); Mockito.doReturn(RoleType.User).when(roleUser).getRoleType(); roles.add(roleRootAdmin); roles.add(roleDomainAdmin); roles.add(roleResourceAdmin); roles.add(roleUser); roleManagerImpl.removeRootAdminRoles(roles); Assert.assertEquals(3, roles.size()); Assert.assertEquals(roleDomainAdmin, roles.get(0)); Assert.assertEquals(roleResourceAdmin, roles.get(1)); Assert.assertEquals(roleUser, roles.get(2)); }
Reusable Method for MCI (click to expand)
private static Role createMockRole(RoleType roleType) { Role role = Mockito.mock(Role.class); Mockito.doReturn(roleType).when(role).getRoleType(); return role; }

Test Case ID #cloudstack_Test_138_4

Test Case Name: removeRootAdminRolesTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\acl\RoleManagerImplTest.java)

Mock Object Variable Name: roleUser

Suggested Diff
--- original +++ refactored @@ Role roleResourceAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); - Role roleUser = Mockito.mock(Role.class); - Mockito.doReturn(RoleType.User).when(roleUser).getRoleType(); + Role roleUser = createMockRole(RoleType.User); roles.add(roleRootAdmin); roles.add(roleDomainAdmin); roles.add(roleResourceAdmin); roles.add(roleUser); @@
Original Test Code (click to expand)
@Test public void removeRootAdminRolesTest() { List<Role> roles = new ArrayList<>(); Role roleRootAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.Admin).when(roleRootAdmin).getRoleType(); Role roleDomainAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.DomainAdmin).when(roleDomainAdmin).getRoleType(); Role roleResourceAdmin = Mockito.mock(Role.class); Mockito.doReturn(RoleType.ResourceAdmin).when(roleResourceAdmin).getRoleType(); Role roleUser = Mockito.mock(Role.class); Mockito.doReturn(RoleType.User).when(roleUser).getRoleType(); roles.add(roleRootAdmin); roles.add(roleDomainAdmin); roles.add(roleResourceAdmin); roles.add(roleUser); roleManagerImpl.removeRootAdminRoles(roles); Assert.assertEquals(3, roles.size()); Assert.assertEquals(roleDomainAdmin, roles.get(0)); Assert.assertEquals(roleResourceAdmin, roles.get(1)); Assert.assertEquals(roleUser, roles.get(2)); }
Reusable Method for MCI (click to expand)
private static Role createMockRole(RoleType roleType) { Role role = Mockito.mock(Role.class); Mockito.doReturn(roleType).when(role).getRoleType(); return role; }

Mock Clone Instance #cloudstack_MCI_139

Reusable Method

private static Role createMockRole(RoleType roleTypeReturn) { Role role = Mockito.mock(Role.class); Mockito.when(role.getRoleType()).thenReturn(roleTypeReturn); return role; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_139_1

Test Case Name: testAddAnnotationResourceDetailsUpdate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\annotation\AnnotationManagerImplTest.java)

Mock Object Variable Name: role

Suggested Diff
--- original +++ refactored @@ Mockito.doNothing().when(accountService).checkAccess(user, volume); - Role role = Mockito.mock(Role.class); - Mockito.when(role.getRoleType()).thenReturn(RoleType.User); + Role role = createMockRole(RoleType.User); Mockito.when(roleService.findRole(Mockito.anyLong())).thenReturn(role); AnnotationVO annotationVO = Mockito.mock(AnnotationVO.class); AnnotationService.EntityType type = AnnotationService.EntityType.VOLUME; @@
Original Test Code (click to expand)
@Test public void testAddAnnotationResourceDetailsUpdate() { CallContext.register(user, account); String uuid = UUID.randomUUID().toString(); VolumeVO volume = Mockito.mock(VolumeVO.class); Mockito.when(volume.getId()).thenReturn(ENTITY_ID); Mockito.when(volumeDao.findByUuid(uuid)).thenReturn(volume); Mockito.doNothing().when(accountService).checkAccess(user, volume); Role role = Mockito.mock(Role.class); Mockito.when(role.getRoleType()).thenReturn(RoleType.User); Mockito.when(roleService.findRole(Mockito.anyLong())).thenReturn(role); AnnotationVO annotationVO = Mockito.mock(AnnotationVO.class); AnnotationService.EntityType type = AnnotationService.EntityType.VOLUME; Mockito.when(annotationVO.getEntityType()).thenReturn(type); Mockito.when(annotationDao.persist(Mockito.any())).thenReturn(annotationVO); Mockito.when(entityManager.findByUuid(Volume.class, uuid)).thenReturn(volume); annotationManager.addAnnotation("Some text", type, uuid, false); Assert.assertEquals(ENTITY_ID, CallContext.current().getEventResourceId()); Assert.assertEquals(ApiCommandResourceType.Volume, CallContext.current().getEventResourceType()); }
Reusable Method for MCI (click to expand)
private static Role createMockRole(RoleType roleTypeReturn) { Role role = Mockito.mock(Role.class); Mockito.when(role.getRoleType()).thenReturn(roleTypeReturn); return role; }

Test Case ID #cloudstack_Test_139_2

Test Case Name: testRemoveAnnotationResourceDetailsUpdate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\annotation\AnnotationManagerImplTest.java)

Mock Object Variable Name: role

Suggested Diff
--- original +++ refactored @@ VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(ENTITY_ID); - Role role = Mockito.mock(Role.class); - Mockito.when(role.getRoleType()).thenReturn(RoleType.User); + Role role = createMockRole(RoleType.User); Mockito.when(roleService.findRole(Mockito.anyLong())).thenReturn(role); AnnotationVO annotationVO = Mockito.mock(AnnotationVO.class); AnnotationService.EntityType type = AnnotationService.EntityType.VM; @@
Original Test Code (click to expand)
@Test public void testRemoveAnnotationResourceDetailsUpdate() { CallContext.register(user, account); String uuid = UUID.randomUUID().toString(); String annotationUuid = UUID.randomUUID().toString(); VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(ENTITY_ID); Role role = Mockito.mock(Role.class); Mockito.when(role.getRoleType()).thenReturn(RoleType.User); Mockito.when(roleService.findRole(Mockito.anyLong())).thenReturn(role); AnnotationVO annotationVO = Mockito.mock(AnnotationVO.class); AnnotationService.EntityType type = AnnotationService.EntityType.VM; Mockito.when(annotationVO.getUuid()).thenReturn(annotationUuid); Mockito.when(annotationVO.getUserUuid()).thenReturn(user.getUuid()); Mockito.when(annotationVO.getEntityType()).thenReturn(type); Mockito.when(annotationVO.getEntityUuid()).thenReturn(uuid); Mockito.when(annotationDao.findByUuid(annotationUuid)).thenReturn(annotationVO); Mockito.when(entityManager.findByUuid(VirtualMachine.class, uuid)).thenReturn(vm); RemoveAnnotationCmd cmd = Mockito.mock(RemoveAnnotationCmd.class); Mockito.when(cmd.getUuid()).thenReturn(annotationUuid); annotationManager.removeAnnotation(cmd); Assert.assertEquals(ENTITY_ID, CallContext.current().getEventResourceId()); Assert.assertEquals(ApiCommandResourceType.VirtualMachine, CallContext.current().getEventResourceType()); }
Reusable Method for MCI (click to expand)
private static Role createMockRole(RoleType roleTypeReturn) { Role role = Mockito.mock(Role.class); Mockito.when(role.getRoleType()).thenReturn(roleTypeReturn); return role; }

Mock Clone Instance #cloudstack_MCI_140

Reusable Method

public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseObject.ResponseView responseView, Vpc vpc, VpcResponse response) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createVpcResponse(responseView, vpc)).thenReturn(response); return responseGenerator; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_140_1

Test Case Name: testExecute(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\vpc\CreateVPCCmdTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
@@ Vpc vpc = Mockito.mock(Vpc.class); VpcResponse response = Mockito.mock(VpcResponse.class); - responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(_vpcService.startVpc(1L, true)).thenReturn(true); Mockito.when(_entityMgr.findById(Mockito.eq(Vpc.class), Mockito.any(Long.class))).thenReturn(vpc); - cmd._responseGenerator = responseGenerator; - Mockito.when(responseGenerator.createVpcResponse(ResponseObject.ResponseView.Restricted, vpc)).thenReturn(response); + responseGenerator = MockResponseGenerator.createMockResponseGenerator(ResponseObject.ResponseView.Restricted, vpc, response); + cmd._responseGenerator = responseGenerator; cmd.execute(); Mockito.verify(_vpcService, Mockito.times(1)).startVpc(Mockito.anyLong(), Mockito.anyBoolean()); @@
Original Test Code (click to expand)
public void testExecute() throws ResourceUnavailableException, InsufficientCapacityException { ReflectionTestUtils.setField(cmd, "start", true); Vpc vpc = Mockito.mock(Vpc.class); VpcResponse response = Mockito.mock(VpcResponse.class); responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(_vpcService.startVpc(1L, true)).thenReturn(true); Mockito.when(_entityMgr.findById(Mockito.eq(Vpc.class), Mockito.any(Long.class))).thenReturn(vpc); cmd._responseGenerator = responseGenerator; Mockito.when(responseGenerator.createVpcResponse(ResponseObject.ResponseView.Restricted, vpc)).thenReturn(response); cmd.execute(); Mockito.verify(_vpcService, Mockito.times(1)).startVpc(Mockito.anyLong(), Mockito.anyBoolean()); }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseObject.ResponseView responseView, Vpc vpc, VpcResponse response) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createVpcResponse(responseView, vpc)).thenReturn(response); return responseGenerator; } }

Test Case ID #cloudstack_Test_140_2

Test Case Name: testExecute(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\vpc\UpdateVPCCmdTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ ReflectionTestUtils.setField(cmd, "display", true); ReflectionTestUtils.setField(cmd, "publicMtu", 1450); Vpc vpc = Mockito.mock(Vpc.class); VpcResponse response = Mockito.mock(VpcResponse.class); - responseGenerator = Mockito.mock(ResponseGenerator.class); - cmd._responseGenerator = responseGenerator; - Mockito.when(_vpcService.updateVpc(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyInt())).thenReturn(vpc); - Mockito.when(responseGenerator.createVpcResponse(ResponseObject.ResponseView.Full, vpc)).thenReturn(response); + responseGenerator = MockResponseGenerator.createMockResponseGenerator(ResponseObject.ResponseView.Full, vpc, response); + cmd._responseGenerator = responseGenerator; + Mockito.when(_vpcService.updateVpc(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyInt())).thenReturn(vpc); Mockito.verify(_vpcService, Mockito.times(0)).updateVpc(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyInt()); @@
Original Test Code (click to expand)
public void testExecute() { ReflectionTestUtils.setField(cmd, "id", 1L); ReflectionTestUtils.setField(cmd, "vpcName", "updatedVpcName"); ReflectionTestUtils.setField(cmd, "displayText", "Updated VPC Name"); ReflectionTestUtils.setField(cmd, "displayText", "Updated VPC Name"); ReflectionTestUtils.setField(cmd, "customId", null); ReflectionTestUtils.setField(cmd, "display", true); ReflectionTestUtils.setField(cmd, "publicMtu", 1450); Vpc vpc = Mockito.mock(Vpc.class); VpcResponse response = Mockito.mock(VpcResponse.class); responseGenerator = Mockito.mock(ResponseGenerator.class); cmd._responseGenerator = responseGenerator; Mockito.when(_vpcService.updateVpc(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyInt())).thenReturn(vpc); Mockito.when(responseGenerator.createVpcResponse(ResponseObject.ResponseView.Full, vpc)).thenReturn(response); Mockito.verify(_vpcService, Mockito.times(0)).updateVpc(Mockito.anyLong(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyInt()); }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseObject.ResponseView responseView, Vpc vpc, VpcResponse response) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createVpcResponse(responseView, vpc)).thenReturn(response); return responseGenerator; } }

Mock Clone Instance #cloudstack_MCI_141

Reusable Method

public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(Configuration cfg, ConfigurationResponse cfgResponse) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createConfigurationResponse(cfg)).thenReturn(cfgResponse); return responseGenerator; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_141_1

Test Case Name: testCreateSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\ListCfgCmdTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
--- original +++ refactored @@ cfgResponse.setName("Test case"); - Mockito.when(responseGenerator.createConfigurationResponse(cfg)).thenReturn(cfgResponse); + responseGenerator = MockResponseGenerator.createMockResponseGenerator(cfg, cfgResponse); listCfgsByCmd.execute(); Mockito.verify(responseGenerator).createConfigurationResponse(cfg); ListResponse<ConfigurationResponse> actualResponse = (ListResponse<ConfigurationResponse>) listCfgsByCmd.getResponseObject(); Assert.assertEquals(cfgResponse, actualResponse.getResponses().get(0)); @@
Original Test Code (click to expand)
@Override @Before public void setUp() { responseGenerator = Mockito.mock(ResponseGenerator.class); mgr = Mockito.mock(ManagementService.class); listCfgsByCmd = new ListCfgsByCmd(); } @Test public void testCreateSuccess() { Configuration cfg = Mockito.mock(Configuration.class); listCfgsByCmd._mgr = mgr; listCfgsByCmd._responseGenerator = responseGenerator; List<Configuration> configList = new ArrayList<Configuration>(); configList.add(cfg); Pair<List<? extends Configuration>, Integer> result = new Pair<List<? extends Configuration>, Integer>(configList, 1); try { Mockito.when(mgr.searchForConfigurations(listCfgsByCmd)).thenReturn(result); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } ConfigurationResponse cfgResponse = new ConfigurationResponse(); cfgResponse.setName("Test case"); Mockito.when(responseGenerator.createConfigurationResponse(cfg)).thenReturn(cfgResponse); listCfgsByCmd.execute(); Mockito.verify(responseGenerator).createConfigurationResponse(cfg); ListResponse<ConfigurationResponse> actualResponse = (ListResponse<ConfigurationResponse>) listCfgsByCmd.getResponseObject(); Assert.assertEquals(cfgResponse, actualResponse.getResponses().get(0)); }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(Configuration cfg, ConfigurationResponse cfgResponse) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createConfigurationResponse(cfg)).thenReturn(cfgResponse); return responseGenerator; } }

Test Case ID #cloudstack_Test_141_2

Test Case Name: testCreateSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\UpdateCfgCmdTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
--- Original +++ Refactored @@ ConfigurationResponse response = new ConfigurationResponse(); response.setName("Test case"); - Mockito.when(responseGenerator.createConfigurationResponse(cfg)).thenReturn(response); + responseGenerator = MockResponseGenerator.createMockResponseGenerator(cfg, response); updateCfgCmd.execute(); Mockito.verify(responseGenerator).createConfigurationResponse(cfg); ConfigurationResponse actualResponse = (ConfigurationResponse) updateCfgCmd.getResponseObject(); @@
Original Test Code (click to expand)
@Override @Before public void setUp() { responseGenerator = Mockito.mock(ResponseGenerator.class); configService = Mockito.mock(ConfigurationService.class); updateCfgCmd = new UpdateCfgCmd(); } @Test public void testCreateSuccess() { Configuration cfg = Mockito.mock(Configuration.class); updateCfgCmd._configService = configService; updateCfgCmd._responseGenerator = responseGenerator; updateCfgCmd.setCfgName("some.cfg"); try { Mockito.when(configService.updateConfiguration(updateCfgCmd)).thenReturn(cfg); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } ConfigurationResponse response = new ConfigurationResponse(); response.setName("Test case"); Mockito.when(responseGenerator.createConfigurationResponse(cfg)).thenReturn(response); updateCfgCmd.execute(); Mockito.verify(responseGenerator).createConfigurationResponse(cfg); ConfigurationResponse actualResponse = (ConfigurationResponse) updateCfgCmd.getResponseObject(); Assert.assertEquals(response, actualResponse); Assert.assertEquals("updateconfigurationresponse", response.getResponseName()); }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(Configuration cfg, ConfigurationResponse cfgResponse) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createConfigurationResponse(cfg)).thenReturn(cfgResponse); return responseGenerator; } }

Mock Clone Instance #cloudstack_MCI_142

Reusable Method

public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseView responseView, String objectName, UserVm userVm, List<UserVmResponse> userVmResponseList) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createUserVmResponse(responseView, objectName, userVm)).thenReturn(userVmResponseList); return responseGenerator; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_142_1

Test Case Name: testCreateSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\ScaleVMCmdTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
--- original +++ refactored @@ try { Mockito.when(userVmService.upgradeVirtualMachine(scaleVMCmd)).thenReturn(userVm); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } - ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); + ResponseGenerator responseGenerator = MockResponseGenerator.createMockResponseGenerator(ResponseView.Restricted, "virtualmachine", userVm, list); scaleVMCmd._responseGenerator = responseGenerator; UserVmResponse userVmResponse = Mockito.mock(UserVmResponse.class); //List<UserVmResponse> list = Mockito.mock(UserVmResponse.class); //list.add(userVmResponse); //LinkedList<UserVmResponse> mockedList = Mockito.mock(LinkedList.class); //Mockito.when(mockedList.get(0)).thenReturn(userVmResponse); List<UserVmResponse> list = new LinkedList<UserVmResponse>(); list.add(userVmResponse); - Mockito.when(responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", userVm)).thenReturn(list); scaleVMCmd._userVmService = userVmService; scaleVMCmd.execute(); }
Original Test Code (click to expand)
@Test public void testCreateSuccess() { UserVmService userVmService = Mockito.mock(UserVmService.class); UserVm userVm = Mockito.mock(UserVm.class); try { Mockito.when(userVmService.upgradeVirtualMachine(scaleVMCmd)).thenReturn(userVm); } catch (Exception e) { Assert.fail("Received exception when success expected " + e.getMessage()); } ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); scaleVMCmd._responseGenerator = responseGenerator; UserVmResponse userVmResponse = Mockito.mock(UserVmResponse.class); //List<UserVmResponse> list = Mockito.mock(UserVmResponse.class); //list.add(userVmResponse); //LinkedList<UserVmResponse> mockedList = Mockito.mock(LinkedList.class); //Mockito.when(mockedList.get(0)).thenReturn(userVmResponse); List<UserVmResponse> list = new LinkedList<UserVmResponse>(); list.add(userVmResponse); Mockito.when(responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", userVm)).thenReturn(list); scaleVMCmd._userVmService = userVmService; scaleVMCmd.execute(); }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseView responseView, String objectName, UserVm userVm, List<UserVmResponse> userVmResponseList) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createUserVmResponse(responseView, objectName, userVm)).thenReturn(userVmResponseList); return responseGenerator; } }

Test Case ID #cloudstack_Test_142_2

Test Case Name: testSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\UpdateVmNicIpTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
@@ Mockito.when(userVmService.updateNicIpForVirtualMachine(Mockito.any(UpdateVmNicIpCmd.class))).thenReturn(userVm); updateVmNicIpCmd._userVmService = userVmService; - responseGenerator = Mockito.mock(ResponseGenerator.class); List<UserVmResponse> list = new LinkedList<UserVmResponse>(); UserVmResponse userVmResponse = Mockito.mock(UserVmResponse.class); list.add(userVmResponse); - Mockito.when(responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", userVm)).thenReturn(list); + responseGenerator = MockResponseGenerator.createMockResponseGenerator(ResponseView.Restricted, "virtualmachine", userVm, list); updateVmNicIpCmd._responseGenerator = responseGenerator; updateVmNicIpCmd.execute(); @@
Original Test Code (click to expand)
@Test public void testSuccess() throws ResourceAllocationException, ResourceUnavailableException, ConcurrentOperationException, InsufficientCapacityException { UserVmService userVmService = Mockito.mock(UserVmService.class); updateVmNicIpCmd = Mockito.mock(UpdateVmNicIpCmd.class); UserVm userVm = Mockito.mock(UserVm.class); Mockito.when(userVmService.updateNicIpForVirtualMachine(Mockito.any(UpdateVmNicIpCmd.class))).thenReturn(userVm); updateVmNicIpCmd._userVmService = userVmService; responseGenerator = Mockito.mock(ResponseGenerator.class); List<UserVmResponse> list = new LinkedList<UserVmResponse>(); UserVmResponse userVmResponse = Mockito.mock(UserVmResponse.class); list.add(userVmResponse); Mockito.when(responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", userVm)).thenReturn(list); updateVmNicIpCmd._responseGenerator = responseGenerator; updateVmNicIpCmd.execute(); }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseView responseView, String objectName, UserVm userVm, List<UserVmResponse> userVmResponseList) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createUserVmResponse(responseView, objectName, userVm)).thenReturn(userVmResponseList); return responseGenerator; } }

Mock Clone Instance #cloudstack_MCI_143

Reusable Method

public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseObject.ResponseView responseView, Network network, NetworkResponse networkResponse) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createNetworkResponse(responseView, network)).thenReturn(networkResponse); return responseGenerator; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_143_1

Test Case Name: testExecute(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\network\CreateNetworkCmdTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
@@ Network createdNetwork = Mockito.mock(Network.class); NetworkResponse response = Mockito.mock(NetworkResponse.class); - responseGenerator = Mockito.mock(ResponseGenerator.class); - Mockito.when(responseGenerator.createNetworkResponse(ResponseObject.ResponseView.Restricted, createdNetwork)).thenReturn(response); + responseGenerator = MockResponseGenerator.createMockResponseGenerator(ResponseObject.ResponseView.Restricted, createdNetwork, response); cmd._responseGenerator = responseGenerator; try { cmd.execute(); Mockito.verify(networkService, Mockito.times(1)).createGuestNetwork(cmd); } catch (Exception e) { System.out.println(e); Assert.fail("Should successfully create the network"); } }
Original Test Code (click to expand)
public void testExecute() throws InsufficientCapacityException, ResourceAllocationException { ReflectionTestUtils.setField(cmd, "displayText", "testNetwork"); ReflectionTestUtils.setField(cmd, "name", "testNetwork"); ReflectionTestUtils.setField(cmd, "networkOfferingId", 1L); ReflectionTestUtils.setField(cmd, "zoneId", 1L); Network createdNetwork = Mockito.mock(Network.class); NetworkResponse response = Mockito.mock(NetworkResponse.class); responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(networkService.createGuestNetwork(cmd)).thenReturn(createdNetwork); Mockito.when(responseGenerator.createNetworkResponse(ResponseObject.ResponseView.Restricted, createdNetwork)).thenReturn(response); cmd._responseGenerator = responseGenerator; try { cmd.execute(); Mockito.verify(networkService, Mockito.times(1)).createGuestNetwork(cmd); } catch (Exception e) { System.out.println(e); Assert.fail("Should successfully create the network"); } }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseObject.ResponseView responseView, Network network, NetworkResponse networkResponse) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createNetworkResponse(responseView, network)).thenReturn(networkResponse); return responseGenerator; } }

Test Case ID #cloudstack_Test_143_2

Test Case Name: testExecute(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\network\UpdateNetworkCmdTest.java)

Mock Object Variable Name: responseGenerator

Suggested Diff
--- original +++ refactored @@ Network network = Mockito.mock(Network.class); - responseGenerator = Mockito.mock(ResponseGenerator.class); NetworkResponse response = Mockito.mock(NetworkResponse.class); response.setPublicMtu(publicmtu); Mockito.when(networkService.getNetwork(networkId)).thenReturn(network); Mockito.when(networkService.updateGuestNetwork(cmd)).thenReturn(network); - cmd._responseGenerator = responseGenerator; - Mockito.when(responseGenerator.createNetworkResponse(ResponseObject.ResponseView.Restricted, network)).thenReturn(response); + responseGenerator = MockResponseGenerator.createMockResponseGenerator(ResponseObject.ResponseView.Restricted, network, response); + cmd._responseGenerator = responseGenerator; cmd.execute(); Mockito.verify(responseGenerator).createNetworkResponse(Mockito.any(ResponseObject.ResponseView.class), Mockito.any(Network.class)); NetworkResponse actualResponse = (NetworkResponse) cmd.getResponseObject(); Assert.assertEquals(response, actualResponse); @@
Original Test Code (click to expand)
public void testExecute() throws InsufficientCapacityException { long networkId = 1L; Integer publicmtu = 1200; ReflectionTestUtils.setField(cmd, "id", networkId); ReflectionTestUtils.setField(cmd, "publicMtu", publicmtu); Network network = Mockito.mock(Network.class); responseGenerator = Mockito.mock(ResponseGenerator.class); NetworkResponse response = Mockito.mock(NetworkResponse.class); response.setPublicMtu(publicmtu); Mockito.when(networkService.getNetwork(networkId)).thenReturn(network); Mockito.when(networkService.updateGuestNetwork(cmd)).thenReturn(network); cmd._responseGenerator = responseGenerator; Mockito.when(responseGenerator.createNetworkResponse(ResponseObject.ResponseView.Restricted, network)).thenReturn(response); cmd.execute(); Mockito.verify(responseGenerator).createNetworkResponse(Mockito.any(ResponseObject.ResponseView.class), Mockito.any(Network.class)); NetworkResponse actualResponse = (NetworkResponse) cmd.getResponseObject(); Assert.assertEquals(response, actualResponse); }
Reusable Method for MCI (click to expand)
public class MockResponseGenerator { public static ResponseGenerator createMockResponseGenerator(ResponseObject.ResponseView responseView, Network network, NetworkResponse networkResponse) { ResponseGenerator responseGenerator = Mockito.mock(ResponseGenerator.class); Mockito.when(responseGenerator.createNetworkResponse(responseView, network)).thenReturn(networkResponse); return responseGenerator; } }

Mock Clone Instance #cloudstack_MCI_144

Reusable Method

// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_144_1

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); - final DeploymentPlan plan = mock(DeploymentPlan.class); + // removed local mock; replaced with global field `plan` final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch);
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_144_2

Test Case Name: testDesignNoElementOnPhysicalNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ when(offering.getGuestType()).thenReturn(GuestType.Isolated); - final DeploymentPlan plan = mock(DeploymentPlan.class); + // removed local mock; replaced with global field `plan` final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoElementOnPhysicalNetwork() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_144_3

Test Case Name: testDesignNoIsolationMethodSTT(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ when(offering.getGuestType()).thenReturn(GuestType.Isolated); - final DeploymentPlan plan = mock(DeploymentPlan.class); + // removed local mock; replaced with global field `plan` final Network network = mock(Network.class); final Account account = mock(Account.class); @@ - final Network designednetwork = guru.design(offering, plan, network, account); + final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodSTT() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_144_4

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); - final DeploymentPlan plan = mock(DeploymentPlan.class); + // removed local mock; replaced with global field `plan` final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

Mock Clone Instance #cloudstack_MCI_145

Reusable Method

// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_145_1

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); - final DeploymentPlan plan = mock(DeploymentPlan.class); + // removed local mock; replaced with global field `plan` final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null);
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vcs); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_145_2

Test Case Name: testDesignNoIsolationMethodVCS(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ when(offering.getGuestType()).thenReturn(GuestType.Isolated); - final DeploymentPlan plan = mock(DeploymentPlan.class); + // removed local mock; replaced with global field `plan` final Network network = mock(Network.class); final Account account = mock(Account.class); - final Network designednetwork = guru.design(offering, plan, network, account); + final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodVCS() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_145_3

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); - final DeploymentPlan plan = mock(DeploymentPlan.class); + // removed local mock; replaced with global field `plan` final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeploymentPlan plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DeploymentPlan.class); } // === Replace local variable in test with === plan;

Mock Clone Instance #cloudstack_MCI_146

Reusable Method

// === Declare in class scope === private Link link; // === Add to @BeforeEach method === @BeforeEach public void setUp() { link = mock(Link.class); } // === Replace local variable in test with === link;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_146_1

Test Case Name: testEquals(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\agent\manager\ConnectedAgentAttacheTest.java)

Suggested Diff
@@ @Test public void testEquals() throws Exception { - Link link = mock(Link.class); + // removed local mock; replaced with global field `link` ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 0, null, link, false); ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 0, null, link, false); assertTrue(agentAttache1.equals(agentAttache2)); }
Original Test Code (click to expand)
@Test public void testEquals() throws Exception { Link link = mock(Link.class); ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 0, null, link, false); ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 0, null, link, false); assertTrue(agentAttache1.equals(agentAttache2)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Link link; // === Add to @BeforeEach method === @BeforeEach public void setUp() { link = mock(Link.class); } // === Replace local variable in test with === link;

Test Case ID #cloudstack_Test_146_2

Test Case Name: testEqualsFalseNull(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\agent\manager\ConnectedAgentAttacheTest.java)

Suggested Diff
@@ @Test public void testEqualsFalseNull() throws Exception { - Link link = mock(Link.class); + // removed local mock; replaced with global field `link` ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 0, null, link, false); assertFalse(agentAttache1.equals(null)); }
Original Test Code (click to expand)
@Test public void testEqualsFalseNull() throws Exception { Link link = mock(Link.class); ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 0, null, link, false); assertFalse(agentAttache1.equals(null)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Link link; // === Add to @BeforeEach method === @BeforeEach public void setUp() { link = mock(Link.class); } // === Replace local variable in test with === link;

Test Case ID #cloudstack_Test_146_3

Test Case Name: testEqualsFalseDiffLink(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\agent\manager\ConnectedAgentAttacheTest.java)

Mock Object Variable Name: link1

Suggested Diff
@@ @Test public void testEqualsFalseDiffLink() throws Exception { - Link link1 = mock(Link.class); + // removed local mock; replaced with global field `link` Link link2 = mock(Link.class); - ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 0, null, link1, false); + ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 0, null, link, false); ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 0, null, link2, false); assertFalse(agentAttache1.equals(agentAttache2)); }
Original Test Code (click to expand)
@Test public void testEqualsFalseDiffLink() throws Exception { Link link1 = mock(Link.class); Link link2 = mock(Link.class); ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 0, null, link1, false); ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 0, null, link2, false); assertFalse(agentAttache1.equals(agentAttache2)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Link link; // === Add to @BeforeEach method === @BeforeEach public void setUp() { link = mock(Link.class); } // === Replace local variable in test with === link;

Test Case ID #cloudstack_Test_146_4

Test Case Name: testEqualsFalseDiffId(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\agent\manager\ConnectedAgentAttacheTest.java)

Mock Object Variable Name: link1

Suggested Diff
@@ @Test public void testEqualsFalseDiffId() throws Exception { - Link link1 = mock(Link.class); + // removed local mock; replaced with global field `link` ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 1, null, link1, false); ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 2, null, link1, false); assertFalse(agentAttache1.equals(agentAttache2)); @@ - ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 1, null, link1, false); + ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 1, null, link, false); - ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 2, null, link1, false); + ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 2, null, link, false);
Original Test Code (click to expand)
@Test public void testEqualsFalseDiffId() throws Exception { Link link1 = mock(Link.class); ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 1, null, link1, false); ConnectedAgentAttache agentAttache2 = new ConnectedAgentAttache(null, 2, null, link1, false); assertFalse(agentAttache1.equals(agentAttache2)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Link link; // === Add to @BeforeEach method === @BeforeEach public void setUp() { link = mock(Link.class); } // === Replace local variable in test with === link;

Test Case ID #cloudstack_Test_146_5

Test Case Name: testEqualsFalseDiffClass(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\agent\manager\ConnectedAgentAttacheTest.java)

Mock Object Variable Name: link1

Suggested Diff
@@ @Test public void testEqualsFalseDiffClass() throws Exception { - Link link1 = mock(Link.class); + // removed local mock; replaced with global field `link` ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 1, null, link, false); assertFalse(agentAttache1.equals("abc")); }
Original Test Code (click to expand)
@Test public void testEqualsFalseDiffClass() throws Exception { Link link1 = mock(Link.class); ConnectedAgentAttache agentAttache1 = new ConnectedAgentAttache(null, 1, null, link1, false); assertFalse(agentAttache1.equals("abc")); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Link link; // === Add to @BeforeEach method === @BeforeEach public void setUp() { link = mock(Link.class); } // === Replace local variable in test with === link;

Mock Clone Instance #cloudstack_MCI_147

Reusable Method

private static Answer createMockAnswer(boolean getResultReturn) { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(getResultReturn); return answer; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_147_1

Test Case Name: testSendCommandsToRouter(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: answer1

Suggested Diff
--- original +++ refactored @@ Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third - Answer[] answers = { answer1, answer2, answer3 }; - when(answer1.getResult()).thenReturn(true); + answer1 = createMockAnswer(true); when(answer2.getResult()).thenReturn(false); lenient().when(answer3.getResult()).thenReturn(false); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); @@
Original Test Code (click to expand)
@Test public void testSendCommandsToRouter() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(false); lenient().when(answer3.getResult()).thenReturn(false); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(0)).getResult(); assertFalse(result); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer(boolean getResultReturn) { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(getResultReturn); return answer; }

Test Case ID #cloudstack_Test_147_2

Test Case Name: testSendCommandsToRouter(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: answer2

Suggested Diff
--- original +++ refactored @@ Answer answer1 = mock(Answer.class); - Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); + Answer answer2 = createMockAnswer(false); when(answer2.getResult()).thenReturn(false); lenient().when(answer3.getResult()).thenReturn(false); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); @@
Original Test Code (click to expand)
@Test public void testSendCommandsToRouter() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(false); lenient().when(answer3.getResult()).thenReturn(false); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(0)).getResult(); assertFalse(result); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer(boolean getResultReturn) { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(getResultReturn); return answer; }

Test Case ID #cloudstack_Test_147_3

Test Case Name: testSendCommandsToRouterWithTrueResult(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: answer1

Suggested Diff
--- original +++ refactored @@ Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third - Answer answer1 = mock(Answer.class); - when(answer1.getResult()).thenReturn(true); + Answer answer1 = createMockAnswer(true); when(answer2.getResult()).thenReturn(true); when(answer3.getResult()).thenReturn(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); @@
Original Test Code (click to expand)
/** * The only way result can be true is if each and every command receive a true result * * @throws AgentUnavailableException * @throws OperationTimedoutException */ @Test public void testSendCommandsToRouterWithTrueResult() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(true); when(answer3.getResult()).thenReturn(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(1)).getResult(); assertTrue(result); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer(boolean getResultReturn) { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(getResultReturn); return answer; }

Test Case ID #cloudstack_Test_147_4

Test Case Name: testSendCommandsToRouterWithTrueResult(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: answer2

Suggested Diff
@@ Answer answer1 = mock(Answer.class); - Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); - when(answer2.getResult()).thenReturn(true); when(answer3.getResult()).thenReturn(true); + Answer answer2 = createMockAnswer(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute @@
Original Test Code (click to expand)
/** * The only way result can be true is if each and every command receive a true result * * @throws AgentUnavailableException * @throws OperationTimedoutException */ @Test public void testSendCommandsToRouterWithTrueResult() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(true); when(answer3.getResult()).thenReturn(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(1)).getResult(); assertTrue(result); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer(boolean getResultReturn) { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(getResultReturn); return answer; }

Test Case ID #cloudstack_Test_147_5

Test Case Name: testSendCommandsToRouterWithTrueResult(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: answer3

Suggested Diff
--- original +++ refactored @@ Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); - Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(true); - when(answer3.getResult()).thenReturn(true); + Answer answer3 = createMockAnswer(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); @@
Original Test Code (click to expand)
/** * The only way result can be true is if each and every command receive a true result * * @throws AgentUnavailableException * @throws OperationTimedoutException */ @Test public void testSendCommandsToRouterWithTrueResult() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(true); when(answer3.getResult()).thenReturn(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(1)).getResult(); assertTrue(result); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer(boolean getResultReturn) { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(getResultReturn); return answer; }

Mock Clone Instance #cloudstack_MCI_148

Reusable Method

public class MockAnswer { public static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_148_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: answer

Suggested Diff
--- original +++ refactored @@ VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); - Answer answer = mock(Answer.class); - when(answer.getResult()).thenReturn(true); + Answer answer = MockAnswer.createMockAnswer(); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); @@
Original Test Code (click to expand)
@Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockAnswer { public static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; } }

Test Case ID #cloudstack_Test_148_2

Test Case Name: shutdownTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: answer

Suggested Diff
--- original +++ refactored @@ when(_hostDao.findById(anyLong())).thenReturn(hostVO); - Answer answer = mock(Answer.class); - when(answer.getResult()).thenReturn(true); + Answer answer = MockAnswer.createMockAnswer(); when(_agentMgr.easySend(anyLong(), any(CleanupLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.shutdown(network, context, true)); @@
Original Test Code (click to expand)
@Test public void shutdownTest() throws ConcurrentOperationException, ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); ReservationContext context = mock(ReservationContext.class); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CleanupLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.shutdown(network, context, true)); }
Reusable Method for MCI (click to expand)
public class MockAnswer { public static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; } }

Test Case ID #cloudstack_Test_148_3

Test Case Name: applyFWRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: answer

Suggested Diff
--- original +++ refactored @@ rules.add(rule); - Answer answer = mock(Answer.class); - when(answer.getResult()).thenReturn(true); + Answer answer = MockAnswer.createMockAnswer(); when(_agentMgr.easySend(anyLong(), any(SetFirewallRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyFWRules(network, rules)); }
Original Test Code (click to expand)
@Test public void applyFWRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); FirewallRule rule = mock(FirewallRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); List<FirewallRule> rules = new ArrayList<FirewallRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetFirewallRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyFWRules(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockAnswer { public static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; } }

Test Case ID #cloudstack_Test_148_4

Test Case Name: applyPRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: answer

Suggested Diff
--- original +++ refactored @@ rules.add(rule); - Answer answer = mock(Answer.class); - when(answer.getResult()).thenReturn(true); + Answer answer = MockAnswer.createMockAnswer(); when(_agentMgr.easySend(anyLong(), any(SetPortForwardingRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyPFRules(network, rules)); }
Original Test Code (click to expand)
@Test public void applyPRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); PortForwardingRule rule = mock(PortForwardingRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestinationIpAddress()).thenReturn(ip); List<PortForwardingRule> rules = new ArrayList<PortForwardingRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetPortForwardingRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyPFRules(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockAnswer { public static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; } }

Test Case ID #cloudstack_Test_148_5

Test Case Name: applyStaticNatsTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: answer

Suggested Diff
--- original +++ refactored @@ rules.add(rule); - Answer answer = mock(Answer.class); - when(answer.getResult()).thenReturn(true); + Answer answer = MockAnswer.createMockAnswer(); when(_agentMgr.easySend(anyLong(), any(SetStaticNatRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyStaticNats(network, rules)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.StaticNat, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); StaticNat rule = mock(StaticNat.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestIpAddress()).thenReturn("1.2.3.4"); when(rule.isForRevoke()).thenReturn(false); List<StaticNat> rules = new ArrayList<StaticNat>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetStaticNatRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyStaticNats(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockAnswer { public static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; } }

Test Case ID #cloudstack_Test_148_6

Test Case Name: testRelease(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\element\ConfigDriveNetworkElementTest.java)

Mock Object Variable Name: answer

Suggested Diff
@@ @Test public void testRelease() { - final Answer answer = mock(Answer.class); - when(agentManager.easySend(anyLong(), any(HandleConfigDriveIsoCommand.class))).thenReturn(answer); - when(answer.getResult()).thenReturn(true); + final Answer answer = MockAnswer.createMockAnswer(); + when(agentManager.easySend(anyLong(), any(HandleConfigDriveIsoCommand.class))).thenReturn(answer); VirtualMachineProfile profile = new VirtualMachineProfileImpl(virtualMachine, null, serviceOfferingVO, null, null); assertTrue(_configDrivesNetworkElement.release(network, nicp, profile, null)); } @@
Original Test Code (click to expand)
@Test public void testRelease() { final Answer answer = mock(Answer.class); when(agentManager.easySend(anyLong(), any(HandleConfigDriveIsoCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); VirtualMachineProfile profile = new VirtualMachineProfileImpl(virtualMachine, null, serviceOfferingVO, null, null); assertTrue(_configDrivesNetworkElement.release(network, nicp, profile, null)); }
Reusable Method for MCI (click to expand)
public class MockAnswer { public static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; } }

Mock Clone Instance #cloudstack_MCI_149

Reusable Method

private static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_149_1

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: updateTungstenLoadbalancerStatsAnswer

Suggested Diff
--- original +++ refactored @@ TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); - Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); + Answer updateTungstenLoadbalancerStatsAnswer = createMockAnswer(); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); - when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); @@
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; }

Test Case ID #cloudstack_Test_149_2

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: updateTungstenLoadbalancerSslAnswer

Suggested Diff
--- original +++ refactored @@ Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); - Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); + Answer updateTungstenLoadbalancerSslAnswer = createMockAnswer(); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); - when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); @@
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; }

Test Case ID #cloudstack_Test_149_3

Test Case Name: createSharedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: answer

Suggested Diff
--- original +++ refactored @@ TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); HostVO hostVO = mock(HostVO.class); - Answer answer = mock(Answer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); ApiObjectBase apiObjectBase = mock(ApiObjectBase.class); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenSharedNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(createTungstenSharedNetworkAnswer.getResult()).thenReturn(true); when(addNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getCidr()).thenReturn("192.168.100.0/24"); when(vlan.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlan.getVlanGateway()).thenReturn("192.168.100.1"); when(vlan.getIp6Gateway()).thenReturn("fd00::1"); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(anyString())).thenReturn(hostVO); + Answer answer = createMockAnswer(); when(agentMgr.easySend(anyLong(), any(SetupTungstenVRouterCommand.class))).thenReturn(answer); - when(answer.getResult()).thenReturn(true); when(vlan.getIp6Cidr()).thenReturn("fd00::1/64"); when(vlan.getIp6Range()).thenReturn("fd00::100-fd00::200"); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.1.150"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); when(createTungstenSharedNetworkAnswer.getApiObjectBase()).thenReturn(apiObjectBase); when(apiObjectBase.getQualifiedName()).thenReturn(List.of("network")); when(tungstenProviderVO.getGateway()).thenReturn("192.168.100.1"); assertTrue(tungstenService.createSharedNetwork(network, vlan)); @@
Original Test Code (click to expand)
@Test public void createSharedNetworkTest() { Network network = mock(Network.class); Vlan vlan = mock(Vlan.class); AccountVO accountVO = mock(AccountVO.class); TungstenAnswer createTungstenSharedNetworkAnswer = mock(TungstenAnswer.class); TungstenAnswer addNetworkSubnetAnswer = mock(TungstenAnswer.class); TungstenAnswer getTungstenNetworkDnsAnswer = mock(TungstenAnswer.class); NetworkDetailVO networkDetailVO = mock(NetworkDetailVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); HostVO hostVO = mock(HostVO.class); Answer answer = mock(Answer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); ApiObjectBase apiObjectBase = mock(ApiObjectBase.class); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(createTungstenSharedNetworkAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkSubnetCommand.class), anyLong())).thenReturn(addNetworkSubnetAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNetworkDnsCommand.class), anyLong())).thenReturn(getTungstenNetworkDnsAnswer); when(createTungstenSharedNetworkAnswer.getResult()).thenReturn(true); when(addNetworkSubnetAnswer.getResult()).thenReturn(true); when(getTungstenNetworkDnsAnswer.getResult()).thenReturn(true); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getCidr()).thenReturn("192.168.100.0/24"); when(vlan.getIpRange()).thenReturn("192.168.100.100-192.168.100.200"); when(vlan.getVlanGateway()).thenReturn("192.168.100.1"); when(vlan.getIp6Gateway()).thenReturn("fd00::1"); when(networkDetailsDao.persist(any(NetworkDetailVO.class))).thenReturn(networkDetailVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(hostDao.findByPublicIp(anyString())).thenReturn(hostVO); when(agentMgr.easySend(anyLong(), any(SetupTungstenVRouterCommand.class))).thenReturn(answer); when(answer.getResult()).thenReturn(true); when(vlan.getIp6Cidr()).thenReturn("fd00::1/64"); when(vlan.getIp6Range()).thenReturn("fd00::100-fd00::200"); when(getTungstenNetworkDnsAnswer.getDetails()).thenReturn("192.168.1.150"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressDao.mark(anyLong(), any(Ip.class))).thenReturn(true); when(createTungstenSharedNetworkAnswer.getApiObjectBase()).thenReturn(apiObjectBase); when(apiObjectBase.getQualifiedName()).thenReturn(List.of("network")); when(tungstenProviderVO.getGateway()).thenReturn("192.168.100.1"); assertTrue(tungstenService.createSharedNetwork(network, vlan)); }
Reusable Method for MCI (click to expand)
private static Answer createMockAnswer() { Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); return answer; }

Mock Clone Instance #cloudstack_MCI_150

Reusable Method

public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_150_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); - Ip ip = mock(Ip.class); - when(ip.addr()).thenReturn("1.2.3.4"); + Ip ip = MockIp.createMockIp("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); @@
Original Test Code (click to expand)
@Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_150_2

Test Case Name: applyFWRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); - Ip ip = mock(Ip.class); - when(ip.addr()).thenReturn("1.2.3.4"); + Ip ip = MockIp.createMockIp("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); @@
Original Test Code (click to expand)
@Test public void applyFWRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); FirewallRule rule = mock(FirewallRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); List<FirewallRule> rules = new ArrayList<FirewallRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetFirewallRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyFWRules(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_150_3

Test Case Name: applyPRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); - Ip ip = mock(Ip.class); - when(ip.addr()).thenReturn("1.2.3.4"); + Ip ip = MockIp.createMockIp("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); @@
Original Test Code (click to expand)
@Test public void applyPRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); PortForwardingRule rule = mock(PortForwardingRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestinationIpAddress()).thenReturn(ip); List<PortForwardingRule> rules = new ArrayList<PortForwardingRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetPortForwardingRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyPFRules(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_150_4

Test Case Name: applyStaticNatsTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ when(network.getState()).thenReturn(Network.State.Implemented); - Ip ip = mock(Ip.class); - when(ip.addr()).thenReturn("1.2.3.4"); + Ip ip = MockIp.createMockIp("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); @@
Original Test Code (click to expand)
@Test public void applyStaticNatsTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.StaticNat, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); StaticNat rule = mock(StaticNat.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestIpAddress()).thenReturn("1.2.3.4"); when(rule.isForRevoke()).thenReturn(false); List<StaticNat> rules = new ArrayList<StaticNat>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetStaticNatRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyStaticNats(network, rules)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_150_5

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ PublicIp sourceNatIp = mock(PublicIp.class); - Ip ip = mock(Ip.class); - when(ip.addr()).thenReturn("10.0.0.0"); + Ip ip = MockIp.createMockIp("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); @@
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Mock Clone Instance #cloudstack_MCI_151

Reusable Method

public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_151_1

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - Ip ip = mock(Ip.class); + Ip ip = MockIp.createMockIp("10.10.10.10"); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); @@ when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); - when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); - when(ip.addr()).thenReturn("10.10.10.10"); + when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_151_2

Test Case Name: applyLBRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - Ip ip = mock(Ip.class); + Ip ip = MockIp.createMockIp("10.10.10.10"); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); - when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); - when(ip.addr()).thenReturn("10.10.10.10"); + when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_151_3

Test Case Name: applyLBRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ip1

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - Ip ip1 = mock(Ip.class); + Ip ip1 = MockIp.createMockIp("10.10.10.10"); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); - when(ipAddressVO.getAddress()).thenReturn(ip1); - when(ip1.addr()).thenReturn("10.10.10.10"); + when(ipAddressVO.getAddress()).thenReturn(ip1); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip1 = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVO> loadBalancerVOList1 = List.of(loadBalancerVO1); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule1.getSourceIp()).thenReturn(ip1); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip1); when(ip1.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList1); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenGuestNetworkIpAddressDao.remove(anyLong())).thenReturn(false); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_151_4

Test Case Name: applyLBRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); Network publicNetwork = mock(Network.class); - Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); + Ip ip = MockIp.createMockIp("10.10.10.10"); when(ipAddressVO.getAddress()).thenReturn(ip); - when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Original Test Code (click to expand)
@Test public void applyLBRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); LoadBalancerVO loadBalancerVO1 = mock(LoadBalancerVO.class); LoadBalancerVO loadBalancerVO2 = mock(LoadBalancerVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer deleteTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenLoadBalancerCommand = mock(TungstenAnswer.class); List<LoadBalancingRule> loadBalancingRuleList = List.of(loadBalancingRule); List<LoadBalancerVO> loadBalancerVOList = Arrays.asList(loadBalancerVO1, loadBalancerVO2); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(loadBalancingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerListenerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenLoadBalancerCommand.class), anyLong())).thenReturn(deleteTungstenLoadBalancerCommand); when(deleteTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(deleteTungstenLoadBalancerCommand.getResult()).thenReturn(true); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Test Case ID #cloudstack_Test_151_5

Test Case Name: updateLoadBalancerTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: ip

Suggested Diff
--- original +++ refactored @@ TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); - Ip ip = mock(Ip.class); + Ip ip = MockIp.createMockIp("192.168.100.100"); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); - when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Original Test Code (click to expand)
@Test public void updateLoadBalancerTest() { Network network = mock(Network.class); LoadBalancingRule loadBalancingRule = mock(LoadBalancingRule.class); Network publicNetwork = mock(Network.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer getTungstenLoadBalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateLoadBalancerServiceInstanceAnswer = mock(TungstenAnswer.class); Answer updateTungstenLoadbalancerStatsAnswer = mock(Answer.class); Answer updateTungstenLoadbalancerSslAnswer = mock(Answer.class); FirewallRuleVO firewallRuleVO = mock(FirewallRuleVO.class); LoadBalancerCertMapVO loadBalancerCertMapVO = mock(LoadBalancerCertMapVO.class); SslCertVO sslCertVO = mock(SslCertVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); Ip ip = mock(Ip.class); AccountVO accountVO = mock(AccountVO.class); Loadbalancer loadbalancer = mock(Loadbalancer.class); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(hostDao.listAllHostsByZoneAndHypervisorType(anyLong(), eq(Hypervisor.HypervisorType.KVM))).thenReturn(List.of(hostVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenLoadBalancerCommand.class), anyLong())).thenReturn(getTungstenLoadBalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateLoadBalancerServiceInstanceCommand.class), anyLong())).thenReturn(updateLoadBalancerServiceInstanceAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerStatsCommand.class))).thenReturn(updateTungstenLoadbalancerStatsAnswer); when(agentMgr.easySend(anyLong(), any(UpdateTungstenLoadbalancerSslCommand.class))).thenReturn(updateTungstenLoadbalancerSslAnswer); when(getTungstenLoadBalancerAnswer.getResult()).thenReturn(true); when(updateLoadBalancerServiceInstanceAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerStatsAnswer.getResult()).thenReturn(true); when(updateTungstenLoadbalancerSslAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(fwRulesDao.listByIpAndPurposeAndNotRevoked(anyLong(), eq(FirewallRule.Purpose.LoadBalancing))).thenReturn(List.of(firewallRuleVO)); when(lbCertMapDao.findByLbRuleId(anyLong())).thenReturn(loadBalancerCertMapVO); when(entityMgr.findById(eq(SslCertVO.class), anyLong())).thenReturn(sslCertVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(loadBalancingRule.getSourceIp()).thenReturn(ip); when(accountDao.findById(anyLong())).thenReturn(accountVO); when(ip.addr()).thenReturn("192.168.100.100"); when(getTungstenLoadBalancerAnswer.getApiObjectBase()).thenReturn(loadbalancer); when(ipAddressVO.getAddress()).thenReturn(ip); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); assertTrue(tungstenService.updateLoadBalancer(network, loadBalancingRule)); }
Reusable Method for MCI (click to expand)
public class MockIp { public static Ip createMockIp(String addrReturn) { Ip ip = mock(Ip.class); when(ip.addr()).thenReturn(addrReturn); return ip; } }

Mock Clone Instance #cloudstack_MCI_152

Reusable Method

public class MockNetworkProfile { public static NetworkProfile createMockNetworkProfile(long idReturn, java.net.URI broadcastUriReturn) { NetworkProfile mockNetworkProfile = mock(NetworkProfile.class); when(mockNetworkProfile.getId()).thenReturn(idReturn); when(mockNetworkProfile.getBroadcastUri()).thenReturn(broadcastUriReturn); return mockNetworkProfile; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_152_1

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: implementednetwork

Suggested Diff
--- original +++ refactored @@ when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); - final NetworkProfile implementednetwork = mock(NetworkProfile.class); - when(implementednetwork.getId()).thenReturn(NETWORK_ID); - when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); + final NetworkProfile implementednetwork = MockNetworkProfile.createMockNetworkProfile(NETWORK_ID, new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockNetworkProfile { public static NetworkProfile createMockNetworkProfile(long idReturn, java.net.URI broadcastUriReturn) { NetworkProfile mockNetworkProfile = mock(NetworkProfile.class); when(mockNetworkProfile.getId()).thenReturn(idReturn); when(mockNetworkProfile.getBroadcastUri()).thenReturn(broadcastUriReturn); return mockNetworkProfile; } }

Test Case ID #cloudstack_Test_152_2

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: implementednetwork

Suggested Diff
--- original +++ refactored @@ when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); - NetworkProfile implementednetwork = mock(NetworkProfile.class); - when(implementednetwork.getId()).thenReturn(42L); - when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); + NetworkProfile implementednetwork = MockNetworkProfile.createMockNetworkProfile(42L, new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockNetworkProfile { public static NetworkProfile createMockNetworkProfile(long idReturn, java.net.URI broadcastUriReturn) { NetworkProfile mockNetworkProfile = mock(NetworkProfile.class); when(mockNetworkProfile.getId()).thenReturn(idReturn); when(mockNetworkProfile.getBroadcastUri()).thenReturn(broadcastUriReturn); return mockNetworkProfile; } }

Mock Clone Instance #cloudstack_MCI_153

Reusable Method

// === Declare in class scope === private PhysicalNetworkSetupInfo nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(PhysicalNetworkSetupInfo.class); } // === Replace local variable in test with === nic;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_153_1

Test Case Name: testCheckNetworkCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void testCheckNetworkCommand() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); - final PhysicalNetworkSetupInfo nic = Mockito.mock(PhysicalNetworkSetupInfo.class); + // removed local mock; replaced with global field `nic` networkInfoList.add(nic); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, nic.getGuestNetworkName())).thenReturn(true); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, nic.getPrivateNetworkName())).thenReturn(true); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Public, nic.getPublicNetworkName())).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, nic.getGuestNetworkName()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, nic.getPrivateNetworkName()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Public, nic.getPublicNetworkName()); }
Original Test Code (click to expand)
@Test public void testCheckNetworkCommand() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); final PhysicalNetworkSetupInfo nic = Mockito.mock(PhysicalNetworkSetupInfo.class); networkInfoList.add(nic); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, nic.getGuestNetworkName())).thenReturn(true); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, nic.getPrivateNetworkName())).thenReturn(true); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Public, nic.getPublicNetworkName())).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, nic.getGuestNetworkName()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, nic.getPrivateNetworkName()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Public, nic.getPublicNetworkName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private PhysicalNetworkSetupInfo nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(PhysicalNetworkSetupInfo.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_153_2

Test Case Name: testCheckNetworkCommandFail1(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: networkSetupInfo

Suggested Diff
@@ @Test public void testCheckNetworkCommandFail1() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); - final PhysicalNetworkSetupInfo networkSetupInfo = Mockito.mock(PhysicalNetworkSetupInfo.class); + // removed local mock; replaced with global field `nic` networkInfoList.add(nic); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); - when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName())).thenReturn(false); + when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, nic.getGuestNetworkName())).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); - verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName()); + verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, nic.getGuestNetworkName()); }
Original Test Code (click to expand)
@Test public void testCheckNetworkCommandFail1() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); final PhysicalNetworkSetupInfo networkSetupInfo = Mockito.mock(PhysicalNetworkSetupInfo.class); networkInfoList.add(networkSetupInfo); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName())).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private PhysicalNetworkSetupInfo nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(PhysicalNetworkSetupInfo.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_153_3

Test Case Name: testCheckNetworkCommandFail2(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: networkSetupInfo

Suggested Diff
@@ @Test public void testCheckNetworkCommandFail2() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); - final PhysicalNetworkSetupInfo networkSetupInfo = Mockito.mock(PhysicalNetworkSetupInfo.class); + // removed local mock; replaced with global field `nic` networkInfoList.add(nic); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); - when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName())).thenReturn(true); + when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, nic.getGuestNetworkName())).thenReturn(true); - when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName())).thenReturn(false); + when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, nic.getPrivateNetworkName())).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); - verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName()); + verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, nic.getGuestNetworkName()); - verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName()); + verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, nic.getPrivateNetworkName()); }
Original Test Code (click to expand)
@Test public void testCheckNetworkCommandFail2() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); final PhysicalNetworkSetupInfo networkSetupInfo = Mockito.mock(PhysicalNetworkSetupInfo.class); networkInfoList.add(networkSetupInfo); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName())).thenReturn(true); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName())).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private PhysicalNetworkSetupInfo nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(PhysicalNetworkSetupInfo.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_153_4

Test Case Name: testCheckNetworkCommandFail3(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: networkSetupInfo

Suggested Diff
@@ @Test public void testCheckNetworkCommandFail3() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); - final PhysicalNetworkSetupInfo networkSetupInfo = Mockito.mock(PhysicalNetworkSetupInfo.class); + // removed local mock; replaced with global field `nic` networkInfoList.add(nic); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); - when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName())).thenReturn(true); + when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, nic.getGuestNetworkName())).thenReturn(true); - when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName())).thenReturn(true); + when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, nic.getPrivateNetworkName())).thenReturn(true); - when(libvirtComputingResourceMock.checkNetwork(TrafficType.Public, networkSetupInfo.getPublicNetworkName())).thenReturn(false); + when(libvirtComputingResourceMock.checkNetwork(TrafficType.Public, nic.getPublicNetworkName())).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); - verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName()); + verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, nic.getGuestNetworkName()); - verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName()); + verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, nic.getPrivateNetworkName()); }
Original Test Code (click to expand)
@Test public void testCheckNetworkCommandFail3() { final List<PhysicalNetworkSetupInfo> networkInfoList = new ArrayList<PhysicalNetworkSetupInfo>(); final PhysicalNetworkSetupInfo networkSetupInfo = Mockito.mock(PhysicalNetworkSetupInfo.class); networkInfoList.add(networkSetupInfo); final CheckNetworkCommand command = new CheckNetworkCommand(networkInfoList); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName())).thenReturn(true); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName())).thenReturn(true); when(libvirtComputingResourceMock.checkNetwork(TrafficType.Public, networkSetupInfo.getPublicNetworkName())).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Guest, networkSetupInfo.getGuestNetworkName()); verify(libvirtComputingResourceMock, times(1)).checkNetwork(TrafficType.Management, networkSetupInfo.getPrivateNetworkName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private PhysicalNetworkSetupInfo nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = Mockito.mock(PhysicalNetworkSetupInfo.class); } // === Replace local variable in test with === nic;

Mock Clone Instance #cloudstack_MCI_154

Reusable Method

private static SearchBuilder<AutoScalePolicyVO> createMockSearchBuilder(SearchCriteria<AutoScalePolicyVO> searchCriteriaMock, AutoScalePolicyVO asScaleUpPolicyMock) { SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); return searchBuilderMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_154_1

Test Case Name: testCreateAutoScaleVmGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: searchBuilderMock

Suggested Diff
--- original +++ refactored @@ when(lbVmMapDao.isVmAttachedToLoadBalancer(loadBalancerId)).thenReturn(false); - SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); + SearchBuilder<AutoScalePolicyVO> searchBuilderMock = createMockSearchBuilder(searchCriteriaMock, asScaleUpPolicyMock); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); - when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); - Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); @@
Original Test Code (click to expand)
@Test public void testCreateAutoScaleVmGroup() { CreateAutoScaleVmGroupCmd cmd = new CreateAutoScaleVmGroupCmd(); ReflectionTestUtils.setField(cmd, "lbRuleId", loadBalancerId); ReflectionTestUtils.setField(cmd, "name", vmGroupName); ReflectionTestUtils.setField(cmd, "minMembers", minMembers); ReflectionTestUtils.setField(cmd, "maxMembers", maxMembers); ReflectionTestUtils.setField(cmd, "interval", interval); ReflectionTestUtils.setField(cmd, "scaleUpPolicyIds", Arrays.asList(scaleUpPolicyId)); ReflectionTestUtils.setField(cmd, "scaleDownPolicyIds", Arrays.asList(scaleDownPolicyId)); ReflectionTestUtils.setField(cmd, "profileId", vmProfileId); when(entityManager.findById(LoadBalancer.class, loadBalancerId)).thenReturn(loadBalancerMock); when(loadBalancerMock.getAccountId()).thenReturn(accountId); when(loadBalancerMock.getDomainId()).thenReturn(domainId); when(loadBalancerMock.getDefaultPortStart()).thenReturn(memberPort); when(lbDao.findById(loadBalancerId)).thenReturn(loadBalancerMock); when(loadBalancerMock.getSourceIpAddressId()).thenReturn(ipAddressId); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(ipAddressDao.findById(ipAddressId)).thenReturn(ipAddressMock); when(ipAddressMock.getDataCenterId()).thenReturn(zoneId); when(loadBalancerMock.getId()).thenReturn(loadBalancerId); when(autoScaleVmGroupDao.isAutoScaleLoadBalancer(loadBalancerId)).thenReturn(false); when(lbVmMapDao.isVmAttachedToLoadBalancer(loadBalancerId)).thenReturn(false); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).validateAutoScaleCounters(anyLong(), any(), any()); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(networkDao.findById(networkId)).thenReturn(networkMock); when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingId); when(networkOfferingDao.findByIdIncludingRemoved(networkOfferingId)).thenReturn(networkOfferingMock); when(networkOfferingMock.isSupportsVmAutoScaling()).thenReturn(true); when(autoScaleVmGroupDao.persist(any())).thenReturn(asVmGroupMock); PowerMockito.doNothing().when(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); AutoScaleVmGroup vmGroup = autoScaleManagerImplSpy.createAutoScaleVmGroup(cmd); Assert.assertEquals(asVmGroupMock, vmGroup); Mockito.verify(asGroupStatisticsDao).createInactiveDummyRecord(anyLong()); Mockito.verify(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); }
Reusable Method for MCI (click to expand)
private static SearchBuilder<AutoScalePolicyVO> createMockSearchBuilder(SearchCriteria<AutoScalePolicyVO> searchCriteriaMock, AutoScalePolicyVO asScaleUpPolicyMock) { SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); return searchBuilderMock; }

Test Case ID #cloudstack_Test_154_2

Test Case Name: testUpdateAutoScaleVmGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: searchBuilderMock

Suggested Diff
--- original +++ refactored @@ when(asVmGroupMock.getProfileId()).thenReturn(vmProfileId); when(asVmGroupMock.getLoadBalancerId()).thenReturn(loadBalancerId); - SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); + SearchBuilder<AutoScalePolicyVO> searchBuilderMock = createMockSearchBuilder(searchCriteriaMock, asScaleUpPolicyMock); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); - when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); - Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(lbDao.findById(loadBalancerId)).thenReturn(loadBalancerMock); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).validateAutoScaleCounters(anyLong(), any(), any()); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(networkDao.findById(networkId)).thenReturn(networkMock); when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingId); when(networkOfferingDao.findByIdIncludingRemoved(networkOfferingId)).thenReturn(networkOfferingMock); when(networkOfferingMock.isSupportsVmAutoScaling()).thenReturn(true); when(autoScaleVmGroupDao.persist(any())).thenReturn(asVmGroupMock); PowerMockito.doNothing().when(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); AutoScaleVmGroup vmGroup = autoScaleManagerImplSpy.updateAutoScaleVmGroup(cmd); Assert.assertEquals(asVmGroupMock, vmGroup); Mockito.verify(asVmGroupMock).setName(vmGroupNameWithMaxLength); Mockito.verify(asVmGroupMock).setMinMembers(minMembers + 1); Mockito.verify(asVmGroupMock).setMaxMembers(maxMembers + 1); Mockito.verify(asVmGroupMock).setInterval(interval); @@
Original Test Code (click to expand)
@Test public void testUpdateAutoScaleVmGroup() { UpdateAutoScaleVmGroupCmd cmd = new UpdateAutoScaleVmGroupCmd(); ReflectionTestUtils.setField(cmd, "id", vmGroupId); ReflectionTestUtils.setField(cmd, "name", vmGroupNameWithMaxLength); ReflectionTestUtils.setField(cmd, "minMembers", minMembers + 1); ReflectionTestUtils.setField(cmd, "maxMembers", maxMembers + 1); ReflectionTestUtils.setField(cmd, "interval", interval); when(autoScaleVmGroupDao.findById(vmGroupId)).thenReturn(asVmGroupMock); when(asVmGroupMock.getName()).thenReturn(vmGroupNameWithMaxLength); when(asVmGroupMock.getInterval()).thenReturn(interval); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getState()).thenReturn(AutoScaleVmGroup.State.DISABLED); when(asVmGroupMock.getProfileId()).thenReturn(vmProfileId); when(asVmGroupMock.getLoadBalancerId()).thenReturn(loadBalancerId); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(lbDao.findById(loadBalancerId)).thenReturn(loadBalancerMock); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).validateAutoScaleCounters(anyLong(), any(), any()); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(networkDao.findById(networkId)).thenReturn(networkMock); when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingId); when(networkOfferingDao.findByIdIncludingRemoved(networkOfferingId)).thenReturn(networkOfferingMock); when(networkOfferingMock.isSupportsVmAutoScaling()).thenReturn(true); when(autoScaleVmGroupDao.persist(any())).thenReturn(asVmGroupMock); PowerMockito.doNothing().when(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); AutoScaleVmGroup vmGroup = autoScaleManagerImplSpy.updateAutoScaleVmGroup(cmd); Assert.assertEquals(asVmGroupMock, vmGroup); Mockito.verify(asVmGroupMock).setName(vmGroupNameWithMaxLength); Mockito.verify(asVmGroupMock).setMinMembers(minMembers + 1); Mockito.verify(asVmGroupMock).setMaxMembers(maxMembers + 1); Mockito.verify(asVmGroupMock).setInterval(interval); }
Reusable Method for MCI (click to expand)
private static SearchBuilder<AutoScalePolicyVO> createMockSearchBuilder(SearchCriteria<AutoScalePolicyVO> searchCriteriaMock, AutoScalePolicyVO asScaleUpPolicyMock) { SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); return searchBuilderMock; }

Mock Clone Instance #cloudstack_MCI_155

Reusable Method

public class MockProjectService { public static ProjectService createMockProjectService(Project project, Account account) { ProjectService projectService = Mockito.mock(ProjectService.class); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); return projectService; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_155_1

Test Case Name: testGetEntityOwnerIdForProject(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\ActivateProjectCmdTest.java)

Mock Object Variable Name: projectService

Suggested Diff
@@ Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); - ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); - Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); - Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); + ProjectService projectService = MockProjectService.createMockProjectService(project, account); activateProjectCmd._projectService = projectService; Assert.assertEquals(2L, activateProjectCmd.getEntityOwnerId()); }
Original Test Code (click to expand)
@Test public void testGetEntityOwnerIdForProject() { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); activateProjectCmd._projectService = projectService; Assert.assertEquals(2L, activateProjectCmd.getEntityOwnerId()); }
Reusable Method for MCI (click to expand)
public class MockProjectService { public static ProjectService createMockProjectService(Project project, Account account) { ProjectService projectService = Mockito.mock(ProjectService.class); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); return projectService; } }

Test Case ID #cloudstack_Test_155_2

Test Case Name: testGetEntityOwnerIdForProject(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\AddAccountToProjectCmdTest.java)

Mock Object Variable Name: projectService

Suggested Diff
--- original +++ refactored @@ Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); - ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); + ProjectService projectService = MockProjectService.createMockProjectService(project, account); addAccountToProjectCmd._projectService = projectService; Assert.assertEquals(2L, addAccountToProjectCmd.getEntityOwnerId()); @@
Original Test Code (click to expand)
/** * * * Condition not handled in the code * * *** */ /* * @Test public void testGetEntityOwnerIdForNullProject() { * * ProjectService projectService = Mockito.mock(ProjectService.class); * Mockito * .when(projectService.getProject(Mockito.anyLong())).thenReturn(null); * addAccountToProjectCmd._projectService = projectService; * * try { addAccountToProjectCmd.getEntityOwnerId(); } * catch(InvalidParameterValueException exception) { * Assert.assertEquals("Unable to find project by id 2", * exception.getLocalizedMessage()); } * * } */ @Test public void testGetEntityOwnerIdForProject() { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); addAccountToProjectCmd._projectService = projectService; Assert.assertEquals(2L, addAccountToProjectCmd.getEntityOwnerId()); }
Reusable Method for MCI (click to expand)
public class MockProjectService { public static ProjectService createMockProjectService(Project project, Account account) { ProjectService projectService = Mockito.mock(ProjectService.class); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); return projectService; } }

Mock Clone Instance #cloudstack_MCI_156

Reusable Method

// === Declare in class scope === private VirtualMachineGuru guru; // === Add to @BeforeEach method === @BeforeEach public void setUp() { guru = mock(VirtualMachineGuru.class); } // === Replace local variable in test with === guru

The refactoring details in each test cases


Test Case ID #cloudstack_Test_156_1

Test Case Name: testSendStopWithOkAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: guru

Suggested Diff
@@ @Test public void testSendStopWithOkAnswer() throws Exception { - VirtualMachineGuru guru = mock(VirtualMachineGuru.class); + // removed local mock; replaced with global field `guru` VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "ok", true); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); - boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); + boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); Assert.assertTrue(actual); }
Original Test Code (click to expand)
@Test public void testSendStopWithOkAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "ok", true); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); Assert.assertTrue(actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineGuru guru; // === Add to @BeforeEach method === @BeforeEach public void setUp() { guru = mock(VirtualMachineGuru.class); } // === Replace local variable in test with === guru

Test Case ID #cloudstack_Test_156_2

Test Case Name: testSendStopWithFailAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: guru

Suggested Diff
@@ @Test public void testSendStopWithFailAnswer() throws Exception { - VirtualMachineGuru guru = mock(VirtualMachineGuru.class); + // removed local mock; replaced with global field `guru` VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "fail", false); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); - boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); + boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Original Test Code (click to expand)
@Test public void testSendStopWithFailAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "fail", false); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineGuru guru; // === Add to @BeforeEach method === @BeforeEach public void setUp() { guru = mock(VirtualMachineGuru.class); } // === Replace local variable in test with === guru

Test Case ID #cloudstack_Test_156_3

Test Case Name: testSendStopWithNullAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: guru

Suggested Diff
@@ @Test public void testSendStopWithNullAnswer() throws Exception { - VirtualMachineGuru guru = mock(VirtualMachineGuru.class); + // removed local mock; replaced with global field `guru` VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(null); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Original Test Code (click to expand)
@Test public void testSendStopWithNullAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(null); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineGuru guru; // === Add to @BeforeEach method === @BeforeEach public void setUp() { guru = mock(VirtualMachineGuru.class); } // === Replace local variable in test with === guru

Mock Clone Instance #cloudstack_MCI_157

Reusable Method

public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_157_1

Test Case Name: shutdownProviderInstancesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); - when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); - when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); + when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); @@
Original Test Code (click to expand)
@Test public void shutdownProviderInstancesTest() throws ConcurrentOperationException { PhysicalNetworkServiceProvider physicalNetworkServiceProvider = mock(PhysicalNetworkServiceProvider.class); ReservationContext reservationContext = mock(ReservationContext.class); PhysicalNetworkVO physicalNetworkVO = mock(PhysicalNetworkVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); Network publicNetwork = mock(Network.class); VlanVO vlanVO1 = mock(VlanVO.class); VlanVO vlanVO2 = mock(VlanVO.class); List<VlanVO> vlanVOList = Arrays.asList(vlanVO1, vlanVO2); HostPodVO hostPodVO1 = mock(HostPodVO.class); HostPodVO hostPodVO2 = mock(HostPodVO.class); List<HostPodVO> hostPodVOList = Arrays.asList(hostPodVO1, hostPodVO2); when(physicalNetworkDao.findById(anyLong())).thenReturn(physicalNetworkVO); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProviderVO); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); when(vlanDao.listVlansByNetworkIdIncludingRemoved(anyLong())).thenReturn(vlanVOList); when(hostPodDao.listByDataCenterId(anyLong())).thenReturn(hostPodVOList); assertTrue(tungstenElement.shutdownProviderInstances(physicalNetworkServiceProvider, reservationContext)); verify(networkServiceMapDao, times(1)).deleteByNetworkId(anyLong()); verify(tungstenService, times(2)).removePublicNetworkSubnet(any(VlanVO.class)); verify(tungstenService, times(1)).deletePublicNetwork(anyLong()); verify(tungstenService, times(2)).removeManagementNetworkSubnet(any(HostPodVO.class)); verify(tungstenService, times(1)).deleteManagementNetwork(anyLong()); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_2

Test Case Name: processHostAboutToBeRemovedWithSecurityGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); NetworkVO network = mock(NetworkVO.class); when(hostVO.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); when(hostVO.getPublicIpAddress()).thenReturn("192.168.100.100"); when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(networkDao.listByZoneSecurityGroup(anyLong())).thenReturn(List.of(network)); tungstenElement.processHostAboutToBeRemoved(1L); verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); }
Original Test Code (click to expand)
//@Test //public void processConnectWithoutSecurityGroupTest() throws ConnectionException { // Host host = mock(Host.class); // StartupCommand startupCommand = mock(StartupCommand.class); // TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); // DataCenterVO dataCenterVO = mock(DataCenterVO.class); // VlanVO vlanVO1 = mock(VlanVO.class); // VlanVO vlanVO2 = mock(VlanVO.class); // List<VlanVO> vlanList = Arrays.asList(vlanVO1, vlanVO2); // Network publicNetwork = mock(Network.class); // NetworkDetailVO networkDetail = mock(NetworkDetailVO.class); // // when(host.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); // when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); // when(host.getPublicIpAddress()).thenReturn("192.168.100.100"); // when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); // when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); // when(vlanDao.listByZone(anyLong())).thenReturn(vlanList); // when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); // when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetail); // when(vlanVO1.getVlanGateway()).thenReturn("192.168.100.1"); // when(vlanVO1.getVlanNetmask()).thenReturn("255.255.255.0"); // when(vlanVO2.getVlanGateway()).thenReturn("192.168.101.1"); // when(vlanVO2.getVlanNetmask()).thenReturn("255.255.255.0"); // when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(false); // // tungstenElement.processConnect(host, startupCommand, true); // verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); //} //@Test //public void processConnectWithSecurityGroupTest() throws ConnectionException { // Host host = mock(Host.class); // StartupCommand startupCommand = mock(StartupCommand.class); // TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); // DataCenterVO dataCenterVO = mock(DataCenterVO.class); // NetworkVO network = mock(NetworkVO.class); // NetworkDetailVO networkDetail = mock(NetworkDetailVO.class); // Network publicNetwork = mock(Network.class); // // when(host.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); // when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); // when(host.getPublicIpAddress()).thenReturn("192.168.100.100"); // when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); // when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); // when(networkDao.listByZoneSecurityGroup(anyLong())).thenReturn(Arrays.asList(network)); // when(networkDetailsDao.findDetail(anyLong(), anyString())).thenReturn(networkDetail); // when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), eq(Networks.TrafficType.Public))).thenReturn(publicNetwork); // when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); // // tungstenElement.processConnect(host, startupCommand, true); // verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); //} @Test public void processHostAboutToBeRemovedWithSecurityGroupTest() { HostVO hostVO = mock(HostVO.class); TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); NetworkVO network = mock(NetworkVO.class); when(hostVO.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); when(hostVO.getPublicIpAddress()).thenReturn("192.168.100.100"); when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(networkDao.listByZoneSecurityGroup(anyLong())).thenReturn(List.of(network)); tungstenElement.processHostAboutToBeRemoved(1L); verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_3

Test Case Name: processHostAboutToBeRemovedWithoutSecurityGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(hostVO.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); when(hostVO.getPublicIpAddress()).thenReturn("192.168.100.100"); when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(false); tungstenElement.processHostAboutToBeRemoved(1L); verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); @@
Original Test Code (click to expand)
@Test public void processHostAboutToBeRemovedWithoutSecurityGroupTest() { HostVO hostVO = mock(HostVO.class); TungstenProviderVO tungstenProvider = mock(TungstenProviderVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(hostVO.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(tungstenProviderDao.findByZoneId(anyLong())).thenReturn(tungstenProvider); when(hostVO.getPublicIpAddress()).thenReturn("192.168.100.100"); when(tungstenProvider.getGateway()).thenReturn("192.168.100.100"); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(false); tungstenElement.processHostAboutToBeRemoved(1L); verify(agentManager, times(1)).easySend(anyLong(), any(SetupTungstenVRouterCommand.class)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_4

Test Case Name: createTungstenPolicyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getTungstenModel()).thenReturn(tungstenNetworkPolicy); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); assertNotNull(tungstenService.createTungstenPolicy(1L, "test")); }
Original Test Code (click to expand)
@Test public void createTungstenPolicyTest() { TungstenAnswer createTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenPolicyCommand.class), anyLong())).thenReturn(createTungstenPolicyAnswer); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(createTungstenPolicyAnswer.getResult()).thenReturn(true); when(createTungstenPolicyAnswer.getTungstenModel()).thenReturn(tungstenNetworkPolicy); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); assertNotNull(tungstenService.createTungstenPolicy(1L, "test")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_5

Test Case Name: addTungstenPolicyRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ AddressType addressType = mock(AddressType.class); SubnetType subnetType = mock(SubnetType.class); PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(addTungstenPolicyRuleAnswer.getResult()).thenReturn(true); when(addTungstenPolicyRuleAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(networkPolicy.getEntries()).thenReturn(policyEntriesType);
Original Test Code (click to expand)
@Test public void addTungstenPolicyRuleTest() throws Exception { AddTungstenPolicyRuleCommand addTungstenPolicyRuleCommand = mock(AddTungstenPolicyRuleCommand.class); TungstenAnswer addTungstenPolicyRuleAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); PolicyEntriesType policyEntriesType = mock(PolicyEntriesType.class); PolicyRuleType policyRuleType = mock(PolicyRuleType.class); ActionListType actionListType = mock(ActionListType.class); AddressType addressType = mock(AddressType.class); SubnetType subnetType = mock(SubnetType.class); PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenPolicyRuleCommand.class), anyLong())).thenReturn(addTungstenPolicyRuleAnswer); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(addTungstenPolicyRuleAnswer.getResult()).thenReturn(true); when(addTungstenPolicyRuleAnswer.getApiObjectBase()).thenReturn(networkPolicy); when(networkPolicy.getEntries()).thenReturn(policyEntriesType); when(policyEntriesType.getPolicyRule()).thenReturn(List.of(policyRuleType)); whenNew(AddTungstenPolicyRuleCommand.class).withAnyArguments().thenReturn(addTungstenPolicyRuleCommand); PowerMockito.when(addTungstenPolicyRuleCommand, "getUuid").thenReturn("8b4637b6-5629-46de-8fb2-d0b0502bfa85"); when(policyRuleType.getRuleUuid()).thenReturn("8b4637b6-5629-46de-8fb2-d0b0502bfa85"); when(policyRuleType.getActionList()).thenReturn(actionListType); when(actionListType.getSimpleAction()).thenReturn("pass"); when(policyRuleType.getSrcAddresses()).thenReturn(List.of(addressType)); when(addressType.getSubnet()).thenReturn(subnetType); when(policyRuleType.getSrcPorts()).thenReturn(List.of(portType)); when(policyRuleType.getDstAddresses()).thenReturn(List.of(addressType)); when(policyRuleType.getDstPorts()).thenReturn(List.of(portType)); assertNotNull(tungstenService.addTungstenPolicyRule(1L, "948f421c-edde-4518-a391-09299cc25dc2", "pass", "<>", "tcp", "network1", "192.168.100.100", 32, 80, 80, "network2", "192.168.200.200", 32, 80, 80)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_6

Test Case Name: listTungstenPolicyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); TungstenAnswer listTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); - DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(networkDao.findById(anyLong())).thenReturn(networkVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenPolicyCommand.class), anyLong())).thenReturn(listTungstenPolicyAnswer); when(listTungstenPolicyAnswer.getResult()).thenReturn(true); when(listTungstenPolicyAnswer.getTungstenModelList()).thenReturn(List.of(tungstenNetworkPolicy)); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); when(tungstenNetworkPolicy.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.listTungstenPolicy(1L, 2L, 3L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Original Test Code (click to expand)
@Test public void listTungstenPolicyTest() { NetworkVO networkVO = mock(NetworkVO.class); TungstenAnswer listTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkDao.findById(anyLong())).thenReturn(networkVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenPolicyCommand.class), anyLong())).thenReturn(listTungstenPolicyAnswer); when(listTungstenPolicyAnswer.getResult()).thenReturn(true); when(listTungstenPolicyAnswer.getTungstenModelList()).thenReturn(List.of(tungstenNetworkPolicy)); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); when(tungstenNetworkPolicy.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.listTungstenPolicy(1L, 2L, 3L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_7

Test Case Name: listTungstenNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenNetworkCommand.class), anyLong())).thenReturn(listTungstenNetworkAnswer); when(listTungstenNetworkAnswer.getResult()).thenReturn(true); doReturn(List.of(virtualNetwork)).when(listTungstenNetworkAnswer).getApiObjectBaseList(); when((virtualNetwork.getName())).thenReturn("guestNetwork1"); assertNotNull(tungstenService.listTungstenNetwork(1L, "948f421c-edde-4518-a391-09299cc25dc2", false));
Original Test Code (click to expand)
@Test public void listTungstenNetworkTest() { TungstenAnswer listTungstenNetworkAnswer = mock(TungstenAnswer.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenNetworkCommand.class), anyLong())).thenReturn(listTungstenNetworkAnswer); when(listTungstenNetworkAnswer.getResult()).thenReturn(true); doReturn(List.of(virtualNetwork)).when(listTungstenNetworkAnswer).getApiObjectBaseList(); when((virtualNetwork.getName())).thenReturn("guestNetwork1"); assertNotNull(tungstenService.listTungstenNetwork(1L, "948f421c-edde-4518-a391-09299cc25dc2", false)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_8

Test Case Name: listTungstenNicTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenNicCommand.class), anyLong())).thenReturn(listTungstenNicAnswer); when(listTungstenNicAnswer.getResult()).thenReturn(true); doReturn(List.of(virtualMachineInterface)).when(listTungstenNicAnswer).getApiObjectBaseList(); assertNotNull(tungstenService.listTungstenNic(1L, "948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void listTungstenNicTest() { TungstenAnswer listTungstenNicAnswer = mock(TungstenAnswer.class); VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenNicCommand.class), anyLong())).thenReturn(listTungstenNicAnswer); when(listTungstenNicAnswer.getResult()).thenReturn(true); doReturn(List.of(virtualMachineInterface)).when(listTungstenNicAnswer).getApiObjectBaseList(); assertNotNull(tungstenService.listTungstenNic(1L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_9

Test Case Name: listTungstenVmTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenVmCommand.class), anyLong())).thenReturn(listTungstenVmAnswer); when(listTungstenVmAnswer.getResult()).thenReturn(true); doReturn(List.of(virtualMachine)).when(listTungstenVmAnswer).getApiObjectBaseList(); assertNotNull(tungstenService.listTungstenVm(1L, "948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void listTungstenVmTest() { TungstenAnswer listTungstenVmAnswer = mock(TungstenAnswer.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenVmCommand.class), anyLong())).thenReturn(listTungstenVmAnswer); when(listTungstenVmAnswer.getResult()).thenReturn(true); doReturn(List.of(virtualMachine)).when(listTungstenVmAnswer).getApiObjectBaseList(); assertNotNull(tungstenService.listTungstenVm(1L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_10

Test Case Name: listTungstenPolicyRuleWithRuleUuidTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenPolicyRuleCommand.class), anyLong())).thenReturn(listTungstenPolicyRuleAnswer); when(listTungstenPolicyRuleAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void listTungstenPolicyRuleWithRuleUuidTest() { TungstenAnswer listTungstenPolicyRuleAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); PolicyEntriesType policyEntriesType = mock(PolicyEntriesType.class); PolicyRuleType policyRuleType = mock(PolicyRuleType.class); ActionListType actionListType = mock(ActionListType.class); AddressType addressType = mock(AddressType.class); SubnetType subnetType = mock(SubnetType.class); PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenPolicyRuleCommand.class), anyLong())).thenReturn(listTungstenPolicyRuleAnswer); when(listTungstenPolicyRuleAnswer.getResult()).thenReturn(true); doReturn(networkPolicy).when(listTungstenPolicyRuleAnswer).getApiObjectBase(); when(networkPolicy.getEntries()).thenReturn(policyEntriesType); when(policyEntriesType.getPolicyRule()).thenReturn(List.of(policyRuleType)); when(policyRuleType.getRuleUuid()).thenReturn("8b4637b6-5629-46de-8fb2-d0b0502bfa85"); when(policyRuleType.getActionList()).thenReturn(actionListType); when(actionListType.getSimpleAction()).thenReturn("pass"); when(policyRuleType.getSrcAddresses()).thenReturn(List.of(addressType)); when(addressType.getSubnet()).thenReturn(subnetType); when(policyRuleType.getSrcPorts()).thenReturn(List.of(portType)); when(policyRuleType.getDstAddresses()).thenReturn(List.of(addressType)); when(policyRuleType.getDstPorts()).thenReturn(List.of(portType)); assertNotNull(tungstenService.listTungstenPolicyRule(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_11

Test Case Name: listTungstenPolicyRuleWithAllRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ SubnetType subnetType = mock(SubnetType.class); PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenPolicyRuleCommand.class), anyLong())).thenReturn(listTungstenPolicyRuleAnswer); when(listTungstenPolicyRuleAnswer.getResult()).thenReturn(true); doReturn(networkPolicy).when(listTungstenPolicyRuleAnswer).getApiObjectBase(); @@
Original Test Code (click to expand)
@Test public void listTungstenPolicyRuleWithAllRuleTest() { TungstenAnswer listTungstenPolicyRuleAnswer = mock(TungstenAnswer.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); PolicyEntriesType policyEntriesType = mock(PolicyEntriesType.class); PolicyRuleType policyRuleType = mock(PolicyRuleType.class); ActionListType actionListType = mock(ActionListType.class); AddressType addressType = mock(AddressType.class); SubnetType subnetType = mock(SubnetType.class); PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenPolicyRuleCommand.class), anyLong())).thenReturn(listTungstenPolicyRuleAnswer); when(listTungstenPolicyRuleAnswer.getResult()).thenReturn(true); doReturn(networkPolicy).when(listTungstenPolicyRuleAnswer).getApiObjectBase(); when(networkPolicy.getEntries()).thenReturn(policyEntriesType); when(policyEntriesType.getPolicyRule()).thenReturn(List.of(policyRuleType)); when(policyRuleType.getRuleUuid()).thenReturn("8b4637b6-5629-46de-8fb2-d0b0502bfa85"); when(policyRuleType.getActionList()).thenReturn(actionListType); when(actionListType.getSimpleAction()).thenReturn("pass"); when(policyRuleType.getSrcAddresses()).thenReturn(List.of(addressType)); when(addressType.getSubnet()).thenReturn(subnetType); when(policyRuleType.getSrcPorts()).thenReturn(List.of(portType)); when(policyRuleType.getDstAddresses()).thenReturn(List.of(addressType)); when(policyRuleType.getDstPorts()).thenReturn(List.of(portType)); assertNotNull(tungstenService.listTungstenPolicyRule(1L, "948f421c-edde-4518-a391-09299cc25dc2", null)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_12

Test Case Name: removeTungstenPolicyRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenPolicyRuleCommand.class), anyLong())).thenReturn(removeTungstenPolicyRuleAnswer); when(removeTungstenPolicyRuleAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void removeTungstenPolicyRuleTest() { TungstenAnswer removeTungstenPolicyRuleAnswer = mock(TungstenAnswer.class); TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenPolicyRuleCommand.class), anyLong())).thenReturn(removeTungstenPolicyRuleAnswer); when(removeTungstenPolicyRuleAnswer.getResult()).thenReturn(true); when(removeTungstenPolicyRuleAnswer.getTungstenModel()).thenReturn(tungstenNetworkPolicy); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); when(tungstenNetworkPolicy.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.removeTungstenPolicyRule(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_13

Test Case Name: createTungstenTagTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ VirtualMachine virtualMachine = mock(VirtualMachine.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenTagCommand.class), anyLong())).thenReturn(createTungstenTagAnswer); when(createTungstenTagAnswer.getResult()).thenReturn(true); when(createTungstenTagAnswer.getTungstenModel()).thenReturn(tungstenTag); when(tungstenTag.getTag()).thenReturn(tag); doReturn(List.of(virtualNetwork)).when(tungstenTag).getVirtualNetworkList(); doReturn(List.of(virtualMachine)).when(tungstenTag).getVirtualMachineList(); doReturn(List.of(virtualMachineInterface)).when(tungstenTag).getVirtualMachineInterfaceList(); doReturn(List.of(networkPolicy)).when(tungstenTag).getNetworkPolicyList(); assertNotNull(tungstenService.createTungstenTag(1L, "testTag", "testTagType")); }
Original Test Code (click to expand)
@Test public void createTungstenTagTest() { TungstenAnswer createTungstenTagAnswer = mock(TungstenAnswer.class); TungstenTag tungstenTag = mock(TungstenTag.class); Tag tag = mock(Tag.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenTagCommand.class), anyLong())).thenReturn(createTungstenTagAnswer); when(createTungstenTagAnswer.getResult()).thenReturn(true); when(createTungstenTagAnswer.getTungstenModel()).thenReturn(tungstenTag); when(tungstenTag.getTag()).thenReturn(tag); doReturn(List.of(virtualNetwork)).when(tungstenTag).getVirtualNetworkList(); doReturn(List.of(virtualMachine)).when(tungstenTag).getVirtualMachineList(); doReturn(List.of(virtualMachineInterface)).when(tungstenTag).getVirtualMachineInterfaceList(); doReturn(List.of(networkPolicy)).when(tungstenTag).getNetworkPolicyList(); assertNotNull(tungstenService.createTungstenTag(1L, "testTag", "testTagType")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_14

Test Case Name: createTungstenTagTypeTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TungstenAnswer createTungstenTagTypeAnswer = mock(TungstenAnswer.class); TagType tagtype = mock(TagType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenTagTypeCommand.class), anyLong())).thenReturn(createTungstenTagTypeAnswer); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenTagTypeCommand.class), anyLong())).thenReturn(createTungstenTagTypeAnswer); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(createTungstenTagTypeAnswer.getResult()).thenReturn(true); when(createTungstenTagTypeAnswer.getApiObjectBase()).thenReturn(tagtype); assertNotNull(tungstenService.createTungstenTagType(1L, "testTagType")); }
Original Test Code (click to expand)
@Test public void createTungstenTagTypeTest() { TungstenAnswer createTungstenTagTypeAnswer = mock(TungstenAnswer.class); TagType tagtype = mock(TagType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenTagTypeCommand.class), anyLong())).thenReturn(createTungstenTagTypeAnswer); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(createTungstenTagTypeAnswer.getResult()).thenReturn(true); when(createTungstenTagTypeAnswer.getApiObjectBase()).thenReturn(tagtype); assertNotNull(tungstenService.createTungstenTagType(1L, "testTagType")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_15

Test Case Name: listTungstenTagsTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenTagCommand.class), anyLong())).thenReturn(listTungstenTagAnswer); when(listTungstenTagAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void listTungstenTagsTest() { TungstenAnswer listTungstenTagAnswer = mock(TungstenAnswer.class); TungstenTag tungstenTag = mock(TungstenTag.class); Tag tag = mock(Tag.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); ApplicationPolicySet applicationPolicySet = mock(ApplicationPolicySet.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenTagCommand.class), anyLong())).thenReturn(listTungstenTagAnswer); when(listTungstenTagAnswer.getResult()).thenReturn(true); when(listTungstenTagAnswer.getTungstenModelList()).thenReturn(List.of(tungstenTag)); when(tungstenTag.getTag()).thenReturn(tag); doReturn(List.of(virtualNetwork)).when(tungstenTag).getVirtualNetworkList(); doReturn(List.of(virtualMachine)).when(tungstenTag).getVirtualMachineList(); doReturn(List.of(virtualMachineInterface)).when(tungstenTag).getVirtualMachineInterfaceList(); doReturn(List.of(networkPolicy)).when(tungstenTag).getNetworkPolicyList(); doReturn(List.of(applicationPolicySet)).when(tungstenTag).getApplicationPolicySetList(); assertNotNull(tungstenService.listTungstenTags(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85", "8d097a79-a38d-4db4-8a41-16f15d9c5afa", "a329662e-1805-4a89-9b05-2b818ea35978", "d5e3f5c5-97ed-41b6-9b6f-7f696b9eddeb", "f5ba12c8-d4c5-4c20-a57d-67a9b6fca652")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_16

Test Case Name: listTungstenTagTypesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TagType tagtype = mock(TagType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenTagTypeCommand.class), anyLong())).thenReturn(listTungstenTagTypeAnswer); when(listTungstenTagTypeAnswer.getResult()).thenReturn(true); doReturn(List.of(tagtype)).when(listTungstenTagTypeAnswer).getApiObjectBaseList(); assertNotNull(tungstenService.listTungstenTagTypes(1L, "testTagType"));
Original Test Code (click to expand)
@Test public void listTungstenTagTypesTest() { TungstenAnswer listTungstenTagTypeAnswer = mock(TungstenAnswer.class); TagType tagtype = mock(TagType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenTagTypeCommand.class), anyLong())).thenReturn(listTungstenTagTypeAnswer); when(listTungstenTagTypeAnswer.getResult()).thenReturn(true); doReturn(List.of(tagtype)).when(listTungstenTagTypeAnswer).getApiObjectBaseList(); assertNotNull(tungstenService.listTungstenTagTypes(1L, "testTagType")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_17

Test Case Name: applyTungstenPolicyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void applyTungstenPolicyTest() { TungstenAnswer applyTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(applyTungstenPolicyAnswer); when(applyTungstenPolicyAnswer.getResult()).thenReturn(true); when(applyTungstenPolicyAnswer.getTungstenModel()).thenReturn(tungstenNetworkPolicy); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); when(tungstenNetworkPolicy.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.applyTungstenPolicy(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85", 1, 1)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_18

Test Case Name: applyTungstenTagTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenTagCommand.class), anyLong())).thenReturn(applyTungstenTagAnswer); when(applyTungstenTagAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void applyTungstenTagTest() { TungstenAnswer applyTungstenTagAnswer = mock(TungstenAnswer.class); TungstenTag tungstenTag = mock(TungstenTag.class); Tag tag = mock(Tag.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenTagCommand.class), anyLong())).thenReturn(applyTungstenTagAnswer); when(applyTungstenTagAnswer.getResult()).thenReturn(true); when(applyTungstenTagAnswer.getTungstenModel()).thenReturn(tungstenTag); when(tungstenTag.getTag()).thenReturn(tag); when(tungstenTag.getNetworkPolicyList()).thenReturn(List.of(networkPolicy)); when(tungstenTag.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); when(tungstenTag.getVirtualMachineList()).thenReturn(List.of(virtualMachine)); when(tungstenTag.getVirtualMachineInterfaceList()).thenReturn(List.of(virtualMachineInterface)); assertNotNull(tungstenService.applyTungstenTag(1L, List.of("948f421c-edde-4518-a391-09299cc25dc2"), List.of("8b4637b6-5629-46de-8fb2-d0b0502bfa85"), List.of("8d097a79-a38d-4db4-8a41-16f15d9c5afa"), "a329662e-1805-4a89-9b05-2b818ea35978", "d5e3f5c5-97ed-41b6-9b6f-7f696b9eddeb", "f5ba12c8-d4c5-4c20-a57d-67a9b6fca652")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_19

Test Case Name: removeTungstenPolicyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenPolicyCommand.class), anyLong())).thenReturn(removeTungstenPolicyAnswer); when(removeTungstenPolicyAnswer.getResult()).thenReturn(true); when(removeTungstenPolicyAnswer.getTungstenModel()).thenReturn(tungstenNetworkPolicy); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); when(tungstenNetworkPolicy.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.removeTungstenPolicy(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Original Test Code (click to expand)
@Test public void removeTungstenPolicyTest() { TungstenAnswer removeTungstenPolicyAnswer = mock(TungstenAnswer.class); TungstenNetworkPolicy tungstenNetworkPolicy = mock(TungstenNetworkPolicy.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenPolicyCommand.class), anyLong())).thenReturn(removeTungstenPolicyAnswer); when(removeTungstenPolicyAnswer.getResult()).thenReturn(true); when(removeTungstenPolicyAnswer.getTungstenModel()).thenReturn(tungstenNetworkPolicy); when(tungstenNetworkPolicy.getNetworkPolicy()).thenReturn(networkPolicy); when(tungstenNetworkPolicy.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.removeTungstenPolicy(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_20

Test Case Name: removeTungstenTagTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenTagCommand.class), anyLong())).thenReturn(removeTungstenTagAnswer); when(removeTungstenTagAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void removeTungstenTagTest() { TungstenAnswer removeTungstenTagAnswer = mock(TungstenAnswer.class); TungstenTag tungstenTag = mock(TungstenTag.class); Tag tag = mock(Tag.class); NetworkPolicy networkPolicy = mock(NetworkPolicy.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); VirtualMachineInterface virtualMachineInterface = mock(VirtualMachineInterface.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenTagCommand.class), anyLong())).thenReturn(removeTungstenTagAnswer); when(removeTungstenTagAnswer.getResult()).thenReturn(true); when(removeTungstenTagAnswer.getTungstenModel()).thenReturn(tungstenTag); when(tungstenTag.getTag()).thenReturn(tag); when(tungstenTag.getNetworkPolicyList()).thenReturn(List.of(networkPolicy)); when(tungstenTag.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); when(tungstenTag.getVirtualMachineList()).thenReturn(List.of(virtualMachine)); when(tungstenTag.getVirtualMachineInterfaceList()).thenReturn(List.of(virtualMachineInterface)); assertNotNull(tungstenService.removeTungstenTag(1L, List.of("948f421c-edde-4518-a391-09299cc25dc2"), List.of("8b4637b6-5629-46de-8fb2-d0b0502bfa85"), List.of("8d097a79-a38d-4db4-8a41-16f15d9c5afa"), "a329662e-1805-4a89-9b05-2b818ea35978", null, "d5e3f5c5-97ed-41b6-9b6f-7f696b9eddeb")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_21

Test Case Name: createTungstenAddressGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ SubnetType subnetType = mock(SubnetType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenAddressGroupCommand.class), anyLong())).thenReturn(createTungstenAddressGroupAnswer); when(createTungstenAddressGroupAnswer.getResult()).thenReturn(true); when(createTungstenAddressGroupAnswer.getApiObjectBase()).thenReturn(addressGroup); when(addressGroup.getPrefix()).thenReturn(subnetListType); when(subnetListType.getSubnet()).thenReturn(List.of(subnetType)); assertNotNull(tungstenService.createTungstenAddressGroup(1L, "test", "192.168.100.0", 24)); }
Original Test Code (click to expand)
@Test public void createTungstenAddressGroupTest() { TungstenAnswer createTungstenAddressGroupAnswer = mock(TungstenAnswer.class); AddressGroup addressGroup = mock(AddressGroup.class); SubnetListType subnetListType = mock(SubnetListType.class); SubnetType subnetType = mock(SubnetType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenAddressGroupCommand.class), anyLong())).thenReturn(createTungstenAddressGroupAnswer); when(createTungstenAddressGroupAnswer.getResult()).thenReturn(true); when(createTungstenAddressGroupAnswer.getApiObjectBase()).thenReturn(addressGroup); when(addressGroup.getPrefix()).thenReturn(subnetListType); when(subnetListType.getSubnet()).thenReturn(List.of(subnetType)); assertNotNull(tungstenService.createTungstenAddressGroup(1L, "test", "192.168.100.0", 24)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_22

Test Case Name: createTungstenServiceGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenServiceGroupCommand.class), anyLong())).thenReturn(createTungstenServiceGroupAnswer); when(createTungstenServiceGroupAnswer.getResult()).thenReturn(true); when(createTungstenServiceGroupAnswer.getApiObjectBase()).thenReturn(serviceGroup); when(serviceGroup.getFirewallServiceList()).thenReturn(firewallServiceGroupType); when(firewallServiceGroupType.getFirewallService()).thenReturn(List.of(firewallServiceType)); when(firewallServiceType.getDstPorts()).thenReturn(portType); assertNotNull(tungstenService.createTungstenServiceGroup(1L, "test", "tcp", 80, 80)); }
Original Test Code (click to expand)
@Test public void createTungstenServiceGroupTest() { TungstenAnswer createTungstenServiceGroupAnswer = mock(TungstenAnswer.class); ServiceGroup serviceGroup = mock(ServiceGroup.class); FirewallServiceGroupType firewallServiceGroupType = mock(FirewallServiceGroupType.class); FirewallServiceType firewallServiceType = mock(FirewallServiceType.class); PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenServiceGroupCommand.class), anyLong())).thenReturn(createTungstenServiceGroupAnswer); when(createTungstenServiceGroupAnswer.getResult()).thenReturn(true); when(createTungstenServiceGroupAnswer.getApiObjectBase()).thenReturn(serviceGroup); when(serviceGroup.getFirewallServiceList()).thenReturn(firewallServiceGroupType); when(firewallServiceGroupType.getFirewallService()).thenReturn(List.of(firewallServiceType)); when(firewallServiceType.getDstPorts()).thenReturn(portType); assertNotNull(tungstenService.createTungstenServiceGroup(1L, "test", "tcp", 80, 80)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_23

Test Case Name: createTungstenFirewallRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ FirewallRuleMatchTagsType firewallRuleMatchTagsType = mock(FirewallRuleMatchTagsType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFirewallRuleCommand.class), anyLong())).thenReturn(createTungstenFirewallRuleAnswer); when(createTungstenFirewallRuleAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void createTungstenFirewallRuleTest() { TungstenAnswer createTungstenFirewallRuleAnswer = mock(TungstenAnswer.class); net.juniper.tungsten.api.types.FirewallRule firewallRule = mock(net.juniper.tungsten.api.types.FirewallRule.class); ActionListType actionListType = mock(ActionListType.class); ObjectReference<ApiPropertyBase> serviceGroup = mock(ObjectReference.class); FirewallRuleEndpointType firewallRuleEndpointType1 = mock(FirewallRuleEndpointType.class); FirewallRuleEndpointType firewallRuleEndpointType2 = mock(FirewallRuleEndpointType.class); FirewallRuleMatchTagsType firewallRuleMatchTagsType = mock(FirewallRuleMatchTagsType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFirewallRuleCommand.class), anyLong())).thenReturn(createTungstenFirewallRuleAnswer); when(createTungstenFirewallRuleAnswer.getResult()).thenReturn(true); when(createTungstenFirewallRuleAnswer.getApiObjectBase()).thenReturn(firewallRule); when(firewallRule.getActionList()).thenReturn(actionListType); when(actionListType.getSimpleAction()).thenReturn("pass"); when(firewallRule.getServiceGroup()).thenReturn(List.of(serviceGroup)); when(serviceGroup.getReferredName()).thenReturn(List.of("service")); when(firewallRule.getEndpoint1()).thenReturn(firewallRuleEndpointType1); when(firewallRule.getEndpoint2()).thenReturn(firewallRuleEndpointType2); when(firewallRuleEndpointType1.getTags()).thenReturn(List.of("tag")); when(firewallRuleEndpointType2.getTags()).thenReturn(null); when(firewallRuleEndpointType2.getAddressGroup()).thenReturn("address:group"); when(firewallRule.getMatchTags()).thenReturn(firewallRuleMatchTagsType); assertNotNull(tungstenService.createTungstenFirewallRule(1L, "f5ba12c8-d4c5-4c20-a57d-67a9b6fca652", "test", "pass", "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85", "8d097a79-a38d-4db4-8a41-16f15d9c5afa", null, "<>", "a329662e-1805-4a89-9b05-2b818ea35978", "d5e3f5c5-97ed-41b6-9b6f-7f696b9eddeb", null, "df8e4490-2a40-4d63-a6f3-1f829ffe4fc6", 1)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_24

Test Case Name: createTungstenFirewallPolicyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFirewallPolicyCommand.class), anyLong())).thenReturn(createTungstenFirewallPolicyAnswer); when(createTungstenFirewallPolicyAnswer.getResult()).thenReturn(true); when(createTungstenFirewallPolicyAnswer.getApiObjectBase()).thenReturn(firewallPolicy); when(firewallPolicy.getFirewallRule()).thenReturn(List.of(firewallSequenceObjectReference)); when(firewallSequenceObjectReference.getReferredName()).thenReturn(List.of("firewallrule")); assertNotNull(tungstenService.createTungstenFirewallPolicy(1L, "f5ba12c8-d4c5-4c20-a57d-67a9b6fca652", "test", 1)); }
Original Test Code (click to expand)
@Test public void createTungstenFirewallPolicyTest() { TungstenAnswer createTungstenFirewallPolicyAnswer = mock(TungstenAnswer.class); FirewallPolicy firewallPolicy = mock(FirewallPolicy.class); ObjectReference<FirewallSequence> firewallSequenceObjectReference = mock(ObjectReference.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenFirewallPolicyCommand.class), anyLong())).thenReturn(createTungstenFirewallPolicyAnswer); when(createTungstenFirewallPolicyAnswer.getResult()).thenReturn(true); when(createTungstenFirewallPolicyAnswer.getApiObjectBase()).thenReturn(firewallPolicy); when(firewallPolicy.getFirewallRule()).thenReturn(List.of(firewallSequenceObjectReference)); when(firewallSequenceObjectReference.getReferredName()).thenReturn(List.of("firewallrule")); assertNotNull(tungstenService.createTungstenFirewallPolicy(1L, "f5ba12c8-d4c5-4c20-a57d-67a9b6fca652", "test", 1)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_25

Test Case Name: createTungstenApplicationPolicySetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenApplicationPolicySetCommand.class), anyLong())).thenReturn(createTungstenApplicationPolicySetAnswer); when(createTungstenApplicationPolicySetAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void createTungstenApplicationPolicySetTest() { TungstenAnswer createTungstenApplicationPolicySetAnswer = mock(TungstenAnswer.class); ApplicationPolicySet applicationPolicySet = mock(ApplicationPolicySet.class); ObjectReference<ApiPropertyBase> objectReference = mock(ObjectReference.class); ObjectReference<FirewallSequence> firewallSequenceObjectReference = mock(ObjectReference.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenApplicationPolicySetCommand.class), anyLong())).thenReturn(createTungstenApplicationPolicySetAnswer); when(createTungstenApplicationPolicySetAnswer.getResult()).thenReturn(true); when(createTungstenApplicationPolicySetAnswer.getApiObjectBase()).thenReturn(applicationPolicySet); when(applicationPolicySet.getTag()).thenReturn(List.of(objectReference)); when(objectReference.getReferredName()).thenReturn(List.of("tag")); when(applicationPolicySet.getFirewallPolicy()).thenReturn(List.of(firewallSequenceObjectReference)); when(firewallSequenceObjectReference.getReferredName()).thenReturn(List.of("firewallrule")); assertNotNull(tungstenService.createTungstenApplicationPolicySet(1L, "test")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_26

Test Case Name: listTungstenApplicationPolicySetTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenApplicationPolicySetCommand.class), anyLong())).thenReturn(listTungstenApplicationPolicySetAnswer);
Original Test Code (click to expand)
@Test public void listTungstenApplicationPolicySetTest() { TungstenAnswer listTungstenApplicationPolicySetAnswer = mock(TungstenAnswer.class); ApplicationPolicySet applicationPolicySet = mock(ApplicationPolicySet.class); ObjectReference<ApiPropertyBase> objectReference = mock(ObjectReference.class); ObjectReference<FirewallSequence> firewallSequenceObjectReference = mock(ObjectReference.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenApplicationPolicySetCommand.class), anyLong())).thenReturn(listTungstenApplicationPolicySetAnswer); when(listTungstenApplicationPolicySetAnswer.getResult()).thenReturn(true); doReturn(List.of(applicationPolicySet)).when(listTungstenApplicationPolicySetAnswer).getApiObjectBaseList(); when(applicationPolicySet.getTag()).thenReturn(List.of(objectReference)); when(objectReference.getReferredName()).thenReturn(List.of("tag")); when(applicationPolicySet.getFirewallPolicy()).thenReturn(List.of(firewallSequenceObjectReference)); when(firewallSequenceObjectReference.getReferredName()).thenReturn(List.of("firewallrule")); assertNotNull(tungstenService.listTungstenApplicationPolicySet(1L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_27

Test Case Name: listTungstenFirewallPolicyTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenFirewallPolicyCommand.class), anyLong())).thenReturn(listTungstenFirewallPolicyAnswer);
Original Test Code (click to expand)
@Test public void listTungstenFirewallPolicyTest() { TungstenAnswer listTungstenFirewallPolicyAnswer = mock(TungstenAnswer.class); FirewallPolicy firewallPolicy = mock(FirewallPolicy.class); ObjectReference<FirewallSequence> firewallSequenceObjectReference = mock(ObjectReference.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenFirewallPolicyCommand.class), anyLong())).thenReturn(listTungstenFirewallPolicyAnswer); when(listTungstenFirewallPolicyAnswer.getResult()).thenReturn(true); doReturn(List.of(firewallPolicy)).when(listTungstenFirewallPolicyAnswer).getApiObjectBaseList(); when(firewallPolicy.getFirewallRule()).thenReturn(List.of(firewallSequenceObjectReference)); when(firewallSequenceObjectReference.getReferredName()).thenReturn(List.of("firewallrule")); assertNotNull(tungstenService.listTungstenFirewallPolicy(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_28

Test Case Name: listTungstenFirewallRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenFirewallRuleCommand.class), anyLong())).thenReturn(listTungstenFirewallRuleAnswer); when(listTungstenFirewallRuleAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void listTungstenFirewallRuleTest() { TungstenAnswer listTungstenFirewallRuleAnswer = mock(TungstenAnswer.class); net.juniper.tungsten.api.types.FirewallRule firewallRule = mock(net.juniper.tungsten.api.types.FirewallRule.class); ActionListType actionListType = mock(ActionListType.class); ObjectReference<ApiPropertyBase> serviceGroup = mock(ObjectReference.class); FirewallRuleEndpointType firewallRuleEndpointType1 = mock(FirewallRuleEndpointType.class); FirewallRuleEndpointType firewallRuleEndpointType2 = mock(FirewallRuleEndpointType.class); FirewallRuleMatchTagsType firewallRuleMatchTagsType = mock(FirewallRuleMatchTagsType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenFirewallRuleCommand.class), anyLong())).thenReturn(listTungstenFirewallRuleAnswer); when(listTungstenFirewallRuleAnswer.getResult()).thenReturn(true); doReturn(List.of(firewallRule)).when(listTungstenFirewallRuleAnswer).getApiObjectBaseList(); when(firewallRule.getActionList()).thenReturn(actionListType); when(actionListType.getSimpleAction()).thenReturn("pass"); when(firewallRule.getServiceGroup()).thenReturn(List.of(serviceGroup)); when(serviceGroup.getReferredName()).thenReturn(List.of("service")); when(firewallRule.getEndpoint1()).thenReturn(firewallRuleEndpointType1); when(firewallRule.getEndpoint2()).thenReturn(firewallRuleEndpointType2); when(firewallRuleEndpointType1.getTags()).thenReturn(List.of("tag")); when(firewallRuleEndpointType2.getTags()).thenReturn(null); when(firewallRuleEndpointType2.getAddressGroup()).thenReturn("address:group"); when(firewallRule.getMatchTags()).thenReturn(firewallRuleMatchTagsType); assertNotNull(tungstenService.listTungstenFirewallRule(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_29

Test Case Name: listTungstenAddressGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
--- original +++ refactored @@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenAddressGroupCommand.class), anyLong())).thenReturn(listTungstenAddressGroupAnswer); when(listTungstenAddressGroupAnswer.getResult()).thenReturn(true); doReturn(List.of(addressGroup)).when(listTungstenAddressGroupAnswer).getApiObjectBaseList(); when(addressGroup.getPrefix()).thenReturn(subnetListType); when(subnetListType.getSubnet()).thenReturn(List.of(subnetType)); assertNotNull(tungstenService.listTungstenAddressGroup(1L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Original Test Code (click to expand)
@Test public void listTungstenAddressGroupTest() { TungstenAnswer listTungstenAddressGroupAnswer = mock(TungstenAnswer.class); AddressGroup addressGroup = mock(AddressGroup.class); SubnetListType subnetListType = mock(SubnetListType.class); SubnetType subnetType = mock(SubnetType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenAddressGroupCommand.class), anyLong())).thenReturn(listTungstenAddressGroupAnswer); when(listTungstenAddressGroupAnswer.getResult()).thenReturn(true); doReturn(List.of(addressGroup)).when(listTungstenAddressGroupAnswer).getApiObjectBaseList(); when(addressGroup.getPrefix()).thenReturn(subnetListType); when(subnetListType.getSubnet()).thenReturn(List.of(subnetType)); assertNotNull(tungstenService.listTungstenAddressGroup(1L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_30

Test Case Name: listTungstenServiceGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenServiceGroupCommand.class), anyLong())).thenReturn(listTungstenServiceGroupAnswer);
Original Test Code (click to expand)
@Test public void listTungstenServiceGroupTest() { TungstenAnswer listTungstenServiceGroupAnswer = mock(TungstenAnswer.class); ServiceGroup serviceGroup = mock(ServiceGroup.class); FirewallServiceGroupType firewallServiceGroupType = mock(FirewallServiceGroupType.class); FirewallServiceType firewallServiceType = mock(FirewallServiceType.class); PortType portType = mock(PortType.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenServiceGroupCommand.class), anyLong())).thenReturn(listTungstenServiceGroupAnswer); when(listTungstenServiceGroupAnswer.getResult()).thenReturn(true); doReturn(List.of(serviceGroup)).when(listTungstenServiceGroupAnswer).getApiObjectBaseList(); when(serviceGroup.getFirewallServiceList()).thenReturn(firewallServiceGroupType); when(firewallServiceGroupType.getFirewallService()).thenReturn(List.of(firewallServiceType)); when(firewallServiceType.getDstPorts()).thenReturn(portType); assertNotNull(tungstenService.listTungstenServiceGroup(1L, "948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_31

Test Case Name: addTungstenVmSecurityGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO));
Original Test Code (click to expand)
@Test public void addTungstenVmSecurityGroupTest() { VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer getTungstenSecurityGroupAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenVmToSecurityGroupAnswer = mock(TungstenAnswer.class); net.juniper.tungsten.api.types.SecurityGroup securityGroup = mock(net.juniper.tungsten.api.types.SecurityGroup.class); NicVO nicVO = mock(NicVO.class); SecurityGroupRuleVO securityGroupRuleVO = mock(SecurityGroupRuleVO.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenSecurityGroupCommand.class), anyLong())).thenReturn(getTungstenSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenVmToSecurityGroupCommand.class), anyLong())).thenReturn(addTungstenVmToSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(getTungstenSecurityGroupAnswer.getResult()).thenReturn(true); when(addTungstenVmToSecurityGroupAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(getTungstenSecurityGroupAnswer.getApiObjectBase()).thenReturn(securityGroup); when(nicDao.findDefaultNicForVM(anyLong())).thenReturn(nicVO); when(nicVO.getBroadcastUri()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf")); when(securityGroupRuleDao.listByAllowedSecurityGroupId(anyLong())).thenReturn(List.of(securityGroupRuleVO)); when(nicVO.getIPv4Address()).thenReturn("192.168.100.100"); when(nicVO.getIPv6Address()).thenReturn("fd00::1"); when(nicVO.getSecondaryIp()).thenReturn(true); when(nicSecIpDao.getSecondaryIpAddressesForNic(anyLong())).thenReturn(List.of("192.168.100.200")); when(securityGroupRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); assertTrue(tungstenService.addTungstenVmSecurityGroup(vmInstanceVO)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_32

Test Case Name: removeTungstenVmSecurityGroupTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
--- original +++ refactored @@ TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); @@
Original Test Code (click to expand)
@Test public void removeTungstenVmSecurityGroupTest() { VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer removeTungstenVmFromSecurityGroupAnswer = mock(TungstenAnswer.class); NicVO nicVO = mock(NicVO.class); SecurityGroupRuleVO securityGroupRuleVO = mock(SecurityGroupRuleVO.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(dataCenterVO.isSecurityGroupEnabled()).thenReturn(true); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenVmFromSecurityGroupCommand.class), anyLong())).thenReturn(removeTungstenVmFromSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(removeTungstenVmFromSecurityGroupAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(nicDao.findDefaultNicForVM(anyLong())).thenReturn(nicVO); when(nicVO.getBroadcastUri()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf")); when(securityGroupRuleDao.listByAllowedSecurityGroupId(anyLong())).thenReturn(List.of(securityGroupRuleVO)); when(nicVO.getIPv4Address()).thenReturn("192.168.100.100"); when(nicVO.getIPv6Address()).thenReturn("fd00::1"); when(nicVO.getSecondaryIp()).thenReturn(true); when(nicSecIpDao.getSecondaryIpAddressesForNic(anyLong())).thenReturn(List.of("192.168.100.200")); when(securityGroupRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(tungstenSecurityGroupRuleDao.expunge(anyLong())).thenReturn(true); when(tungstenSecurityGroupRuleDao.listByRuleTarget(anyString())).thenReturn(List.of(tungstenSecurityGroupRuleVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); assertTrue(tungstenService.removeTungstenVmSecurityGroup(vmInstanceVO)); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_33

Test Case Name: createRoutingLogicalRouterTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenRoutingLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); when(tungstenAnswer.getTungstenModel()).thenReturn(tungstenLogicalRouter); when(tungstenLogicalRouter.getLogicalRouter()).thenReturn(logicalRouter); when(tungstenLogicalRouter.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.createRoutingLogicalRouter(1L, "default-domain:default-project", "testLR")); }
Original Test Code (click to expand)
@Test public void createRoutingLogicalRouterTest() { TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenLogicalRouter tungstenLogicalRouter = mock(TungstenLogicalRouter.class); LogicalRouter logicalRouter = mock(LogicalRouter.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenRoutingLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); when(tungstenAnswer.getTungstenModel()).thenReturn(tungstenLogicalRouter); when(tungstenLogicalRouter.getLogicalRouter()).thenReturn(logicalRouter); when(tungstenLogicalRouter.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.createRoutingLogicalRouter(1L, "default-domain:default-project", "testLR")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_34

Test Case Name: addNetworkGatewayToLogicalRouterTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(networkDao.findByUuid(anyString())).thenReturn(networkVO); when(ipAddressManager.acquireLastGuestIpAddress(any(Network.class))).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkGatewayToLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); when(tungstenAnswer.getTungstenModel()).thenReturn(tungstenLogicalRouter); when(tungstenLogicalRouter.getLogicalRouter()).thenReturn(logicalRouter); when(tungstenLogicalRouter.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.addNetworkGatewayToLogicalRouter(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Original Test Code (click to expand)
@Test public void addNetworkGatewayToLogicalRouterTest() { NetworkVO networkVO = mock(NetworkVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenLogicalRouter tungstenLogicalRouter = mock(TungstenLogicalRouter.class); LogicalRouter logicalRouter = mock(LogicalRouter.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkDao.findByUuid(anyString())).thenReturn(networkVO); when(ipAddressManager.acquireLastGuestIpAddress(any(Network.class))).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenNetworkGatewayToLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); when(tungstenAnswer.getTungstenModel()).thenReturn(tungstenLogicalRouter); when(tungstenLogicalRouter.getLogicalRouter()).thenReturn(logicalRouter); when(tungstenLogicalRouter.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.addNetworkGatewayToLogicalRouter(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_35

Test Case Name: listRoutingLogicalRouterTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenRoutingLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true);
Original Test Code (click to expand)
@Test public void listRoutingLogicalRouterTest() { TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenLogicalRouter tungstenLogicalRouter = mock(TungstenLogicalRouter.class); LogicalRouter logicalRouter = mock(LogicalRouter.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(tungstenFabricUtils.sendTungstenCommand(any(ListTungstenRoutingLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); when(tungstenAnswer.getTungstenModelList()).thenReturn(List.of(tungstenLogicalRouter)); when(tungstenLogicalRouter.getLogicalRouter()).thenReturn(logicalRouter); when(tungstenLogicalRouter.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.listRoutingLogicalRouter(1L, null, "948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Test Case ID #cloudstack_Test_157_36

Test Case Name: removeNetworkGatewayFromLogicalRouterTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenterDao

Suggested Diff
@@ DataCenterVO dataCenterVO = mock(DataCenterVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenLogicalRouter tungstenLogicalRouter = mock(TungstenLogicalRouter.class); LogicalRouter logicalRouter = mock(LogicalRouter.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); - DataCenterVO dataCenterVO = mock(DataCenterVO.class); - when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); + dataCenterDao = MockDataCenterDao.createMockDataCenterDao(dataCenterVO); when(networkDao.findByUuid(anyString())).thenReturn(networkVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkAndLogicalRouter(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkGatewayFromLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); when(tungstenAnswer.getTungstenModel()).thenReturn(tungstenLogicalRouter); when(tungstenLogicalRouter.getLogicalRouter()).thenReturn(logicalRouter); when(tungstenLogicalRouter.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.removeNetworkGatewayFromLogicalRouter(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Original Test Code (click to expand)
@Test public void removeNetworkGatewayFromLogicalRouterTest() { NetworkVO networkVO = mock(NetworkVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenLogicalRouter tungstenLogicalRouter = mock(TungstenLogicalRouter.class); LogicalRouter logicalRouter = mock(LogicalRouter.class); VirtualNetwork virtualNetwork = mock(VirtualNetwork.class); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); when(networkDao.findByUuid(anyString())).thenReturn(networkVO); when(tungstenGuestNetworkIpAddressDao.findByNetworkAndLogicalRouter(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenNetworkGatewayFromLogicalRouterCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); when(tungstenAnswer.getTungstenModel()).thenReturn(tungstenLogicalRouter); when(tungstenLogicalRouter.getLogicalRouter()).thenReturn(logicalRouter); when(tungstenLogicalRouter.getVirtualNetworkList()).thenReturn(List.of(virtualNetwork)); assertNotNull(tungstenService.removeNetworkGatewayFromLogicalRouter(1L, "948f421c-edde-4518-a391-09299cc25dc2", "8b4637b6-5629-46de-8fb2-d0b0502bfa85")); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenterVO dataCenterVO) { DataCenterDao dataCenterDao = mock(DataCenterDao.class); when(dataCenterDao.findById(anyLong())).thenReturn(dataCenterVO); return dataCenterDao; } }

Mock Clone Instance #cloudstack_MCI_158

Reusable Method

public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenter _dcMock) { DataCenterDao _dcDao = Mockito.mock(DataCenterDao.class); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); return _dcDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_158_1

Test Case Name: beforeTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: _dcDao

Suggested Diff
@@ Mockito.when(updateVmCommand.getId()).thenReturn(vmId); - when(_dcDao.findById(anyLong())).thenReturn(_dcMock); Mockito.when(userVmDao.findById(vmId)).thenReturn(userVmVoMock); Mockito.when(callerAccount.getType()).thenReturn(Account.Type.ADMIN); @@ CallContext.register(callerUser, callerAccount); customParameters.put(VmDetailConstants.ROOT_DISK_SIZE, "123"); lenient().doNothing().when(resourceLimitMgr).incrementResourceCount(anyLong(), any(Resource.ResourceType.class)); lenient().doNothing().when(resourceLimitMgr).decrementResourceCount(anyLong(), any(Resource.ResourceType.class), anyLong()); @@ -when(_dcDao.findById(anyLong())).thenReturn(_dcMock); +_dcDao = MockDataCenterDao.createMockDataCenterDao(_dcMock);
Original Test Code (click to expand)
@Before public void beforeTest() { Mockito.when(updateVmCommand.getId()).thenReturn(vmId); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); Mockito.when(userVmDao.findById(vmId)).thenReturn(userVmVoMock); Mockito.when(callerAccount.getType()).thenReturn(Account.Type.ADMIN); CallContext.register(callerUser, callerAccount); customParameters.put(VmDetailConstants.ROOT_DISK_SIZE, "123"); lenient().doNothing().when(resourceLimitMgr).incrementResourceCount(anyLong(), any(Resource.ResourceType.class)); lenient().doNothing().when(resourceLimitMgr).decrementResourceCount(anyLong(), any(Resource.ResourceType.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenter _dcMock) { DataCenterDao _dcDao = Mockito.mock(DataCenterDao.class); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); return _dcDao; } }

Test Case ID #cloudstack_Test_158_2

Test Case Name: testUpdateVmNicIpSuccess1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerTest.java)

Mock Object Variable Name: _dcDao

Suggested Diff
--- original +++ refactored @@ when(_networkMock.getGuestType()).thenReturn(GuestType.Isolated); - when(_dcDao.findById(anyLong())).thenReturn(_dcMock); + _dcDao = MockDataCenterDao.createMockDataCenterDao(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); when(_ipAddrMgr.allocateGuestIP(Mockito.eq(_networkMock), anyString())).thenReturn("10.10.10.10"); @@
Original Test Code (click to expand)
@Test public void testUpdateVmNicIpSuccess1() throws Exception { UpdateVmNicIpCmd cmd = new UpdateVmNicIpCmd(); Class<?> _class = cmd.getClass(); Field virtualmachineIdField = _class.getDeclaredField("nicId"); virtualmachineIdField.setAccessible(true); virtualmachineIdField.set(cmd, 1L); Field accountNameField = _class.getDeclaredField("ipAddr"); accountNameField.setAccessible(true); accountNameField.set(cmd, "10.10.10.10"); NicVO nic = new NicVO("nic", 1L, 2L, VirtualMachine.Type.User); when(_nicDao.findById(anyLong())).thenReturn(nic); when(_vmDao.findById(anyLong())).thenReturn(_vmMock); when(_networkDao.findById(anyLong())).thenReturn(_networkMock); doReturn(9L).when(_networkMock).getNetworkOfferingId(); when(_networkOfferingDao.findByIdIncludingRemoved(anyLong())).thenReturn(_networkOfferingMock); doReturn(10L).when(_networkOfferingMock).getId(); List<Service> services = new ArrayList<Service>(); services.add(Service.Dhcp); when(_networkModel.listNetworkOfferingServices(anyLong())).thenReturn(services); when(_vmMock.getState()).thenReturn(State.Stopped); lenient().doNothing().when(_accountMgr).checkAccess(_account, null, true, _vmMock); when(_accountDao.findByIdIncludingRemoved(anyLong())).thenReturn(_accountMock); when(_networkMock.getState()).thenReturn(Network.State.Implemented); when(_networkMock.getDataCenterId()).thenReturn(3L); when(_networkMock.getGuestType()).thenReturn(GuestType.Isolated); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); when(_ipAddrMgr.allocateGuestIP(Mockito.eq(_networkMock), anyString())).thenReturn("10.10.10.10"); when(_nicDao.persist(any(NicVO.class))).thenReturn(nic); Account caller = new AccountVO("testaccount", 1, "networkdomain", Account.Type.NORMAL, UUID.randomUUID().toString()); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, caller); try { _userVmMgr.updateNicIpForVirtualMachine(cmd); } finally { CallContext.unregister(); } }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenter _dcMock) { DataCenterDao _dcDao = Mockito.mock(DataCenterDao.class); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); return _dcDao; } }

Test Case ID #cloudstack_Test_158_3

Test Case Name: testUpdateVmNicIpSuccess2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerTest.java)

Mock Object Variable Name: _dcDao

Suggested Diff
--- Original +++ Refactored @@ when(_networkMock.getGuestType()).thenReturn(GuestType.Shared); - when(_dcDao.findById(anyLong())).thenReturn(_dcMock); + _dcDao = MockDataCenterDao.createMockDataCenterDao(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); IPAddressVO newIp = mock(IPAddressVO.class); @@
Original Test Code (click to expand)
@Test public void testUpdateVmNicIpSuccess2() throws Exception { UpdateVmNicIpCmd cmd = new UpdateVmNicIpCmd(); Class<?> _class = cmd.getClass(); Field virtualmachineIdField = _class.getDeclaredField("nicId"); virtualmachineIdField.setAccessible(true); virtualmachineIdField.set(cmd, 1L); Field accountNameField = _class.getDeclaredField("ipAddr"); accountNameField.setAccessible(true); accountNameField.set(cmd, "10.10.10.10"); NicVO nic = new NicVO("nic", 1L, 2L, VirtualMachine.Type.User); when(_nicDao.findById(anyLong())).thenReturn(nic); nic.setIPv4Address("10.10.10.9"); when(_vmDao.findById(anyLong())).thenReturn(_vmMock); when(_networkDao.findById(anyLong())).thenReturn(_networkMock); doReturn(9L).when(_networkMock).getNetworkOfferingId(); when(_networkOfferingDao.findByIdIncludingRemoved(anyLong())).thenReturn(_networkOfferingMock); doReturn(10L).when(_networkOfferingMock).getId(); List<Service> services = new ArrayList<Service>(); when(_networkModel.listNetworkOfferingServices(anyLong())).thenReturn(services); lenient().when(_vmMock.getState()).thenReturn(State.Running); lenient().doNothing().when(_accountMgr).checkAccess(_account, null, true, _vmMock); when(_accountDao.findByIdIncludingRemoved(anyLong())).thenReturn(_accountMock); when(_networkMock.getState()).thenReturn(Network.State.Implemented); when(_networkMock.getDataCenterId()).thenReturn(3L); when(_networkMock.getGuestType()).thenReturn(GuestType.Shared); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); IPAddressVO newIp = mock(IPAddressVO.class); when(newIp.getVlanId()).thenReturn(1L); VlanVO vlan = mock(VlanVO.class); when(vlan.getVlanGateway()).thenReturn("10.10.10.1"); when(vlan.getVlanNetmask()).thenReturn("255.255.255.0"); when(_ipAddrMgr.allocatePublicIpForGuestNic(Mockito.eq(_networkMock), nullable(Long.class), Mockito.eq(_accountMock), anyString())).thenReturn("10.10.10.10"); when(_ipAddressDao.findByIpAndSourceNetworkId(anyLong(), eq("10.10.10.10"))).thenReturn(newIp); when(_ipAddressDao.findByIpAndSourceNetworkId(anyLong(), eq("10.10.10.9"))).thenReturn(null); when(_nicDao.persist(any(NicVO.class))).thenReturn(nic); when(_vlanDao.findById(anyLong())).thenReturn(vlan); Account caller = new AccountVO("testaccount", 1, "networkdomain", Account.Type.NORMAL, UUID.randomUUID().toString()); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, caller); try { _userVmMgr.updateNicIpForVirtualMachine(cmd); } finally { CallContext.unregister(); } }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenter _dcMock) { DataCenterDao _dcDao = Mockito.mock(DataCenterDao.class); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); return _dcDao; } }

Test Case ID #cloudstack_Test_158_4

Test Case Name: testUpdateVmNicIpFailure2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerTest.java)

Mock Object Variable Name: _dcDao

Suggested Diff
@@ when(_networkMock.getGuestType()).thenReturn(GuestType.Isolated); - when(_dcDao.findById(anyLong())).thenReturn(_dcMock); + _dcDao = MockDataCenterDao.createMockDataCenterDao(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); when(_ipAddrMgr.allocateGuestIP(Mockito.eq(_networkMock), anyString())).thenReturn(null);
Original Test Code (click to expand)
// vm is stopped in isolated network in advanced zone @Test(expected = InvalidParameterValueException.class) public void testUpdateVmNicIpFailure2() throws Exception { UpdateVmNicIpCmd cmd = new UpdateVmNicIpCmd(); Class<?> _class = cmd.getClass(); Field virtualmachineIdField = _class.getDeclaredField("nicId"); virtualmachineIdField.setAccessible(true); virtualmachineIdField.set(cmd, 1L); Field accountNameField = _class.getDeclaredField("ipAddr"); accountNameField.setAccessible(true); accountNameField.set(cmd, "10.10.10.10"); NicVO nic = new NicVO("nic", 1L, 2L, VirtualMachine.Type.User); when(_nicDao.findById(anyLong())).thenReturn(nic); when(_vmDao.findById(anyLong())).thenReturn(_vmMock); when(_networkDao.findById(anyLong())).thenReturn(_networkMock); doReturn(9L).when(_networkMock).getNetworkOfferingId(); when(_networkOfferingDao.findByIdIncludingRemoved(anyLong())).thenReturn(_networkOfferingMock); doReturn(10L).when(_networkOfferingMock).getId(); List<Service> services = new ArrayList<Service>(); services.add(Service.Dhcp); when(_networkModel.listNetworkOfferingServices(anyLong())).thenReturn(services); when(_vmMock.getState()).thenReturn(State.Stopped); lenient().doNothing().when(_accountMgr).checkAccess(_account, null, true, _vmMock); when(_accountDao.findByIdIncludingRemoved(anyLong())).thenReturn(_accountMock); when(_networkMock.getState()).thenReturn(Network.State.Implemented); when(_networkMock.getDataCenterId()).thenReturn(3L); when(_networkMock.getGuestType()).thenReturn(GuestType.Isolated); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); when(_ipAddrMgr.allocateGuestIP(Mockito.eq(_networkMock), anyString())).thenReturn(null); Account caller = new AccountVO("testaccount", 1, "networkdomain", Account.Type.NORMAL, UUID.randomUUID().toString()); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, caller); try { _userVmMgr.updateNicIpForVirtualMachine(cmd); } finally { CallContext.unregister(); } }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenter _dcMock) { DataCenterDao _dcDao = Mockito.mock(DataCenterDao.class); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); return _dcDao; } }

Test Case ID #cloudstack_Test_158_5

Test Case Name: testUpdateVmNicIpFailure3(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerTest.java)

Mock Object Variable Name: _dcDao

Suggested Diff
@@ when(_networkMock.getGuestType()).thenReturn(GuestType.Shared); - when(_dcDao.findById(anyLong())).thenReturn(_dcMock); + _dcDao = MockDataCenterDao.createMockDataCenterDao(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); lenient().when(_ipAddrMgr.allocatePublicIpForGuestNic(Mockito.eq(_networkMock), anyLong(), Mockito.eq(_accountMock), anyString())).thenReturn(null); Account caller = new AccountVO("testaccount", 1, "networkdomain", Account.Type.NORMAL, UUID.randomUUID().toString()); @@
Original Test Code (click to expand)
// vm is stopped in shared network in advanced zone @Test(expected = InvalidParameterValueException.class) public void testUpdateVmNicIpFailure3() throws Exception { UpdateVmNicIpCmd cmd = new UpdateVmNicIpCmd(); Class<?> _class = cmd.getClass(); Field virtualmachineIdField = _class.getDeclaredField("nicId"); virtualmachineIdField.setAccessible(true); virtualmachineIdField.set(cmd, 1L); Field accountNameField = _class.getDeclaredField("ipAddr"); accountNameField.setAccessible(true); accountNameField.set(cmd, "10.10.10.10"); NicVO nic = new NicVO("nic", 1L, 2L, VirtualMachine.Type.User); when(_nicDao.findById(anyLong())).thenReturn(nic); when(_vmDao.findById(anyLong())).thenReturn(_vmMock); when(_networkDao.findById(anyLong())).thenReturn(_networkMock); doReturn(9L).when(_networkMock).getNetworkOfferingId(); when(_networkOfferingDao.findByIdIncludingRemoved(anyLong())).thenReturn(_networkOfferingMock); doReturn(10L).when(_networkOfferingMock).getId(); List<Service> services = new ArrayList<Service>(); services.add(Service.Dhcp); when(_networkModel.listNetworkOfferingServices(anyLong())).thenReturn(services); when(_vmMock.getState()).thenReturn(State.Stopped); lenient().doNothing().when(_accountMgr).checkAccess(_account, null, true, _vmMock); when(_accountDao.findByIdIncludingRemoved(anyLong())).thenReturn(_accountMock); when(_networkMock.getState()).thenReturn(Network.State.Implemented); when(_networkMock.getDataCenterId()).thenReturn(3L); when(_networkMock.getGuestType()).thenReturn(GuestType.Shared); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); when(_dcMock.getNetworkType()).thenReturn(NetworkType.Advanced); lenient().when(_ipAddrMgr.allocatePublicIpForGuestNic(Mockito.eq(_networkMock), anyLong(), Mockito.eq(_accountMock), anyString())).thenReturn(null); Account caller = new AccountVO("testaccount", 1, "networkdomain", Account.Type.NORMAL, UUID.randomUUID().toString()); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, caller); try { _userVmMgr.updateNicIpForVirtualMachine(cmd); } finally { CallContext.unregister(); } }
Reusable Method for MCI (click to expand)
public class MockDataCenterDao { public static DataCenterDao createMockDataCenterDao(DataCenter _dcMock) { DataCenterDao _dcDao = Mockito.mock(DataCenterDao.class); when(_dcDao.findById(anyLong())).thenReturn(_dcMock); return _dcDao; } }

Mock Clone Instance #cloudstack_MCI_159

Reusable Method

// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination

The refactoring details in each test cases


Test Case ID #cloudstack_Test_159_1

Test Case Name: preparePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: deployDestination

Suggested Diff
@@ @Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); - DeployDestination deployDestination = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Original Test Code (click to expand)
@Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination

Test Case ID #cloudstack_Test_159_2

Test Case Name: prepareManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: deployDestination

Suggested Diff
@@ @Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); - DeployDestination deployDestination = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Original Test Code (click to expand)
@Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination

Test Case ID #cloudstack_Test_159_3

Test Case Name: prepareWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: deployDestination

Suggested Diff
@@ Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); - DeployDestination deployDestination = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); @@ when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); - tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); + tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext);
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void prepareWithExceptionTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination

Test Case ID #cloudstack_Test_159_4

Test Case Name: prepareMigrationTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: dest

Suggested Diff
@@ @Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - DeployDestination dest = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); - assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); + assertTrue(tungstenElement.prepareMigration(nic, network, vm, deployDestination, context)); }
Original Test Code (click to expand)
@Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination

Mock Clone Instance #cloudstack_MCI_160

Reusable Method

// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_160_1

Test Case Name: testImplementGuestNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: deployDestination

Suggested Diff
@@ @Test public void testImplementGuestNetwork() { final Network network = mock(Network.class); - final DeployDestination deployDestination = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` final ReservationContext reservationContext = mock(ReservationContext.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest);
Original Test Code (click to expand)
@Test public void testImplementGuestNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(network)).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new LogicalRouter(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "192.168.1.100")); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenService.allocateDnsIpAddress(any(Network.class), any(), anyString())).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenLogicalRouterCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(GetTungstenNatIpCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(SetTungstenNetworkGatewayCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination;

Test Case ID #cloudstack_Test_160_2

Test Case Name: testImplementSharedNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: deployDestination

Suggested Diff
@@ @Test public void testImplementSharedNetwork() { final Network network = mock(Network.class); - final DeployDestination deployDestination = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); when(vlanDao.listVlansByNetworkId(anyLong())).thenReturn(List.of(new VlanVO())); when(tungstenService.createSharedNetwork(any(Network.class), any(VlanVO.class))).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); }
Original Test Code (click to expand)
@Test public void testImplementSharedNetwork() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getNetworkOfferingId()).thenReturn(1L); when(network.getState()).thenReturn(Network.State.Implementing); when(network.getDataCenterId()).thenReturn(2L); when(network.getPhysicalNetworkId()).thenReturn(3L); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); when(vlanDao.listVlansByNetworkId(anyLong())).thenReturn(List.of(new VlanVO())); when(tungstenService.createSharedNetwork(any(Network.class), any(VlanVO.class))).thenReturn(true); final Network implemented = guru.implement(network, offering, deployDestination, reservationContext); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), implemented.getBroadcastUri()); assertEquals("192.168.1.1", implemented.getGateway()); assertEquals("192.168.1.0/24", implemented.getCidr()); assertEquals(Networks.Mode.Dhcp, implemented.getMode()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, implemented.getBroadcastDomainType()); assertEquals(1L, implemented.getNetworkOfferingId()); assertEquals(Network.State.Implemented, implemented.getState()); assertEquals(2L, implemented.getDataCenterId()); assertEquals(3L, implemented.getPhysicalNetworkId().longValue()); assertFalse(implemented.isRedundant()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination;

Test Case ID #cloudstack_Test_160_3

Test Case Name: testImplementWithException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: deployDestination

Suggested Diff
@@ @Test(expected = CloudRuntimeException.class) public void testImplementWithException() { final Network network = mock(Network.class); - final DeployDestination deployDestination = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getState()).thenReturn(Network.State.Implementing); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(any(Network.class))).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new IOException())); - guru.implement(network, offering, deployDestination, reservationContext); + guru.implement(network, offering, deployDestination, reservationContext); }
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testImplementWithException() { final Network network = mock(Network.class); final DeployDestination deployDestination = mock(DeployDestination.class); final ReservationContext reservationContext = mock(ReservationContext.class); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getMode()).thenReturn(Networks.Mode.Dhcp); when(network.getGateway()).thenReturn("192.168.1.1"); when(network.getCidr()).thenReturn("192.168.1.0/24"); when(network.getBroadcastDomainType()).thenReturn(Networks.BroadcastDomainType.TUNGSTEN); when(network.getState()).thenReturn(Network.State.Implementing); when(offering.isRedundantRouter()).thenReturn(false); when(offering.getGuestType()).thenReturn(Network.GuestType.Isolated); when(tungstenService.getTungstenProjectFqn(any(Network.class))).thenReturn("default-domain:default-project"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), new IOException())); guru.implement(network, offering, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination;

Test Case ID #cloudstack_Test_160_4

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
@@ @Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - final DeployDestination dest = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); - guru.reserve(nic, network, vm, dest, context); + guru.reserve(nic, network, vm, deployDestination, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination;

Test Case ID #cloudstack_Test_160_5

Test Case Name: testPrepareMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
@@ @Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - final DeployDestination dest = mock(DeployDestination.class); + // removed local mock; replaced with global field `deployDestination` final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); - guru.prepareMigration(nic, network, vm, dest, context); + guru.prepareMigration(nic, network, vm, deployDestination, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Original Test Code (click to expand)
@Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination deployDestination; // === Add to @BeforeEach method === @BeforeEach public void setUp() { deployDestination = mock(DeployDestination.class); } // === Replace local variable in test with === deployDestination;

Mock Clone Instance #cloudstack_MCI_161

Reusable Method

public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_161_1

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); - final DeployDestination dest = mock(DeployDestination.class); - final DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + final DataCenter dc = mock(DataCenter.class); + final DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_2

Test Case Name: testImplementFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); - final DeployDestination dest = mock(DeployDestination.class); - final DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + final DataCenter dc = mock(DataCenter.class); + final DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); @@
Original Test Code (click to expand)
@Test public void testImplementFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_3

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); - final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + final DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); final HostVO niciraHost = mock(HostVO.class); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_4

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); - final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); + final DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_5

Test Case Name: testImplementURIException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); - final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + final DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); @@
Original Test Code (click to expand)
@Test public void testImplementURIException() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_6

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(netdao.findById(NETWORK_ID)).thenReturn(network); - final DeployDestination dest = mock(DeployDestination.class); - final DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + final DataCenter dc = mock(DataCenter.class); + final DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_7

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(42L); - DeployDestination dest = mock(DeployDestination.class); - DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + DataCenter dc = mock(DataCenter.class); + DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_8

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(42L); - DeployDestination dest = mock(DeployDestination.class); - DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + DataCenter dc = mock(DataCenter.class); + DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Test Case ID #cloudstack_Test_161_9

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ when(netdao.findById(42L)).thenReturn(network); - DeployDestination dest = mock(DeployDestination.class); - DataCenter dc = mock(DataCenter.class); - when(dest.getDataCenter()).thenReturn(dc); + DataCenter dc = mock(DataCenter.class); + DeployDestination dest = MockDeployDestination.createMockDeployDestination(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockDeployDestination { public static DeployDestination createMockDeployDestination(DataCenter dataCenter) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dataCenter); return dest; } }

Mock Clone Instance #cloudstack_MCI_162

Reusable Method

private static DeployDestination createMockDeployDestination(DataCenterVO dc) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dc); return dest; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_162_1

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); - final DeployDestination dest = mock(DeployDestination.class); - final DataCenterVO dc = mock(DataCenterVO.class); - when(dest.getDataCenter()).thenReturn(dc); + final DataCenterVO dc = mock(DataCenterVO.class); + final DeployDestination dest = createMockDeployDestination(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static DeployDestination createMockDeployDestination(DataCenterVO dc) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dc); return dest; }

Test Case ID #cloudstack_Test_162_2

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dest

Suggested Diff
--- original +++ refactored @@ final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); - final DeployDestination dest = mock(DeployDestination.class); - final DataCenterVO dc = mock(DataCenterVO.class); - when(dest.getDataCenter()).thenReturn(dc); + final DataCenterVO dc = mock(DataCenterVO.class); + final DeployDestination dest = createMockDeployDestination(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); @@
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
private static DeployDestination createMockDeployDestination(DataCenterVO dc) { DeployDestination dest = mock(DeployDestination.class); when(dest.getDataCenter()).thenReturn(dc); return dest; }

Mock Clone Instance #cloudstack_MCI_163

Reusable Method

// === Declare in class scope === private DeployDestination dest; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dest = mock(DeployDestination.class); } // === Replace local variable in test with === dest;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_163_1

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dest

Suggested Diff
@@ when(offering.getGuestType()).thenReturn(GuestType.Isolated); - final DeployDestination dest = mock(DeployDestination.class); + // removed local mock; replaced with global field `dest` final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@ when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context));
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination dest; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dest = mock(DeployDestination.class); } // === Replace local variable in test with === dest;

Test Case ID #cloudstack_Test_163_2

Test Case Name: implementSharedNetworkUuidVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dest

Suggested Diff
@@ final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); - final DeployDestination dest = mock(DeployDestination.class); + // removed local mock; replaced with global field `dest` final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@ when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); - assertTrue(element.implement(network, offering, dest, context)); + assertTrue(element.implement(network, offering, dest, context));
Original Test Code (click to expand)
@Test public void implementSharedNetworkUuidVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination dest; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dest = mock(DeployDestination.class); } // === Replace local variable in test with === dest;

Test Case ID #cloudstack_Test_163_3

Test Case Name: implementSharedNetworkNumericalVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dest

Suggested Diff
@@ when(offering.getGuestType()).thenReturn(GuestType.Shared); - final DeployDestination dest = mock(DeployDestination.class); + // removed local mock; replaced with global field `dest` final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@ - assertTrue(element.implement(network, offering, dest, context)); + assertTrue(element.implement(network, offering, dest, context));
Original Test Code (click to expand)
@Test public void implementSharedNetworkNumericalVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn("bbbb-bbbb-bbbb"); final ConfigureSharedNetworkVlanIdAnswer answer = mock(ConfigureSharedNetworkVlanIdAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination dest; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dest = mock(DeployDestination.class); } // === Replace local variable in test with === dest;

Test Case ID #cloudstack_Test_163_4

Test Case Name: implementSharedNetworkNumericalVlanIdWithoutL2GatewayService(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dest

Suggested Diff
@@ when(offering.getGuestType()).thenReturn(GuestType.Shared); - final DeployDestination dest = mock(DeployDestination.class); + // removed local mock; replaced with global field `dest` final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@ when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); - element.implement(network, offering, dest, context); + element.implement(network, offering, dest, context);
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void implementSharedNetworkNumericalVlanIdWithoutL2GatewayService() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); element.implement(network, offering, dest, context); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DeployDestination dest; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dest = mock(DeployDestination.class); } // === Replace local variable in test with === dest;

Mock Clone Instance #cloudstack_MCI_164

Reusable Method

public class MockAffinityGroupDao { public static AffinityGroupDao createMockAffinityGroupDao(long affinityGroupId, AffinityGroupVO affinityGroupVO) { AffinityGroupDao affinityGroupDao = Mockito.mock(AffinityGroupDao.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); return affinityGroupDao; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_164_1

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: affinityGroupDao

Suggested Diff
@@ AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); - when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); + affinityGroupDao = MockAffinityGroupDao.createMockAffinityGroupDao(affinityGroupId, affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id));
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupDao { public static AffinityGroupDao createMockAffinityGroupDao(long affinityGroupId, AffinityGroupVO affinityGroupVO) { AffinityGroupDao affinityGroupDao = Mockito.mock(AffinityGroupDao.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); return affinityGroupDao; } }

Test Case ID #cloudstack_Test_164_2

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: affinityGroupDao

Suggested Diff
@@ AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); - when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); + affinityGroupDao = MockAffinityGroupDao.createMockAffinityGroupDao(affinityGroupId, affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId);
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.LOWER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupDao { public static AffinityGroupDao createMockAffinityGroupDao(long affinityGroupId, AffinityGroupVO affinityGroupVO) { AffinityGroupDao affinityGroupDao = Mockito.mock(AffinityGroupDao.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); return affinityGroupDao; } }

Test Case ID #cloudstack_Test_164_3

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: affinityGroupDao

Suggested Diff
--- original +++ refactored @@ DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); - when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); + affinityGroupDao = MockAffinityGroupDao.createMockAffinityGroupDao(affinityGroupId, affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupDao { public static AffinityGroupDao createMockAffinityGroupDao(long affinityGroupId, AffinityGroupVO affinityGroupVO) { AffinityGroupDao affinityGroupDao = Mockito.mock(AffinityGroupDao.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); return affinityGroupDao; } }

Test Case ID #cloudstack_Test_164_4

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: affinityGroupDao

Suggested Diff
--- original +++ refactored @@ DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); - when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); + affinityGroupDao = MockAffinityGroupDao.createMockAffinityGroupDao(affinityGroupId, affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupDao { public static AffinityGroupDao createMockAffinityGroupDao(long affinityGroupId, AffinityGroupVO affinityGroupVO) { AffinityGroupDao affinityGroupDao = Mockito.mock(AffinityGroupDao.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); return affinityGroupDao; } }

Test Case ID #cloudstack_Test_164_5

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: affinityGroupDao

Suggested Diff
@@ AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); - when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); + affinityGroupDao = MockAffinityGroupDao.createMockAffinityGroupDao(affinityGroupId, affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); @@
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.HIGHER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupDao { public static AffinityGroupDao createMockAffinityGroupDao(long affinityGroupId, AffinityGroupVO affinityGroupVO) { AffinityGroupDao affinityGroupDao = Mockito.mock(AffinityGroupDao.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); return affinityGroupDao; } }

Test Case ID #cloudstack_Test_164_6

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: affinityGroupDao

Suggested Diff
@@ DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); - when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); + affinityGroupDao = MockAffinityGroupDao.createMockAffinityGroupDao(affinityGroupId, affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockAffinityGroupDao { public static AffinityGroupDao createMockAffinityGroupDao(long affinityGroupId, AffinityGroupVO affinityGroupVO) { AffinityGroupDao affinityGroupDao = Mockito.mock(AffinityGroupDao.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); return affinityGroupDao; } }

Mock Clone Instance #cloudstack_MCI_165

Reusable Method

private static IpAddress createMockIpAddress(Ip ip) { IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); return ipAddress; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_165_1

Test Case Name: applyFWRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: ipAddress

Suggested Diff
--- original +++ refactored @@ when(ip.addr()).thenReturn("1.2.3.4"); - IpAddress ipAddress = mock(IpAddress.class); - when(ipAddress.getAddress()).thenReturn(ip); + IpAddress ipAddress = createMockIpAddress(ip); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void applyFWRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); FirewallRule rule = mock(FirewallRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); List<FirewallRule> rules = new ArrayList<FirewallRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetFirewallRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyFWRules(network, rules)); }
Reusable Method for MCI (click to expand)
private static IpAddress createMockIpAddress(Ip ip) { IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); return ipAddress; }

Test Case ID #cloudstack_Test_165_2

Test Case Name: applyPRulesTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: ipAddress

Suggested Diff
--- original +++ refactored @@ when(ip.addr()).thenReturn("1.2.3.4"); - IpAddress ipAddress = mock(IpAddress.class); - when(ipAddress.getAddress()).thenReturn(ip); - when(ipAddress.getVlanId()).thenReturn(1L); + IpAddress ipAddress = createMockIpAddress(ip); + when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void applyPRulesTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); PortForwardingRule rule = mock(PortForwardingRule.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestinationIpAddress()).thenReturn(ip); List<PortForwardingRule> rules = new ArrayList<PortForwardingRule>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetPortForwardingRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyPFRules(network, rules)); }
Reusable Method for MCI (click to expand)
private static IpAddress createMockIpAddress(Ip ip) { IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); return ipAddress; }

Test Case ID #cloudstack_Test_165_3

Test Case Name: applyStaticNatsTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: ipAddress

Suggested Diff
--- original +++ refactored @@ when(ip.addr()).thenReturn("1.2.3.4"); - IpAddress ipAddress = mock(IpAddress.class); - when(ipAddress.getAddress()).thenReturn(ip); - when(ipAddress.getVlanId()).thenReturn(1L); + IpAddress ipAddress = createMockIpAddress(ip); + when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); @@
Original Test Code (click to expand)
@Test public void applyStaticNatsTest() throws ResourceUnavailableException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); when(network.getState()).thenReturn(Network.State.Implemented); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); when(ipAddress.getVlanId()).thenReturn(1L); when(_networkModel.getIp(anyLong())).thenReturn(ipAddress); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.StaticNat, Provider.CiscoVnmc)).thenReturn(true); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn(null); when(_vlanDao.findById(anyLong())).thenReturn(vlanVO); StaticNat rule = mock(StaticNat.class); when(rule.getSourceIpAddressId()).thenReturn(1L); when(rule.getDestIpAddress()).thenReturn("1.2.3.4"); when(rule.isForRevoke()).thenReturn(false); List<StaticNat> rules = new ArrayList<StaticNat>(); rules.add(rule); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(SetStaticNatRulesCommand.class))).thenReturn(answer); assertTrue(_element.applyStaticNats(network, rules)); }
Reusable Method for MCI (click to expand)
private static IpAddress createMockIpAddress(Ip ip) { IpAddress ipAddress = mock(IpAddress.class); when(ipAddress.getAddress()).thenReturn(ip); return ipAddress; }

Mock Clone Instance #cloudstack_MCI_166

Reusable Method

private static Commands createMockCommands() { Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); return commands; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_166_1

Test Case Name: testSendCommandsToRouter(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: commands

Suggested Diff
--- original +++ refactored @@ doReturn(true).when(nwHelperUT).checkRouterVersion(vr); - Commands commands = mock(Commands.class); - when(commands.size()).thenReturn(3); + Commands commands = createMockCommands(); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third @@
Original Test Code (click to expand)
@Test public void testSendCommandsToRouter() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(false); lenient().when(answer3.getResult()).thenReturn(false); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(0)).getResult(); assertFalse(result); }
Reusable Method for MCI (click to expand)
private static Commands createMockCommands() { Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); return commands; }

Test Case ID #cloudstack_Test_166_2

Test Case Name: testSendCommandsToRouterWithTrueResult(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: commands

Suggested Diff
--- original +++ refactored @@ doReturn(true).when(nwHelperUT).checkRouterVersion(vr); - Commands commands = mock(Commands.class); - when(commands.size()).thenReturn(3); + Commands commands = createMockCommands(); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; @@
Original Test Code (click to expand)
/** * The only way result can be true is if each and every command receive a true result * * @throws AgentUnavailableException * @throws OperationTimedoutException */ @Test public void testSendCommandsToRouterWithTrueResult() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); Answer answer3 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2, answer3 }; when(answer1.getResult()).thenReturn(true); when(answer2.getResult()).thenReturn(true); when(answer3.getResult()).thenReturn(true); when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(1)).getResult(); verify(answer2, times(1)).getResult(); verify(answer3, times(1)).getResult(); assertTrue(result); }
Reusable Method for MCI (click to expand)
private static Commands createMockCommands() { Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); return commands; }

Test Case ID #cloudstack_Test_166_3

Test Case Name: testSendCommandsToRouterWithNoAnswers(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\router\NetworkHelperImplTest.java)

Mock Object Variable Name: commands

Suggested Diff
--- original +++ refactored @@ doReturn(true).when(nwHelperUT).checkRouterVersion(vr); - Commands commands = mock(Commands.class); - when(commands.size()).thenReturn(3); + Commands commands = createMockCommands(); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2 }; when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); @@
Original Test Code (click to expand)
/** * If the number of answers is different to the number of commands the result is false * * @throws AgentUnavailableException * @throws OperationTimedoutException */ @Test public void testSendCommandsToRouterWithNoAnswers() throws AgentUnavailableException, OperationTimedoutException, ResourceUnavailableException { // Prepare NetworkHelperImpl nwHelperUT = spy(this.nwHelper); VirtualRouter vr = mock(VirtualRouter.class); when(vr.getHostId()).thenReturn(HOST_ID); doReturn(true).when(nwHelperUT).checkRouterVersion(vr); Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); Answer answer1 = mock(Answer.class); Answer answer2 = mock(Answer.class); // In the second iteration it should match and return, without invoking the third Answer[] answers = { answer1, answer2 }; when(this.agentManager.send(HOST_ID, commands)).thenReturn(answers); // Execute final boolean result = nwHelperUT.sendCommandsToRouter(vr, commands); // Assert verify(this.agentManager, times(1)).send(HOST_ID, commands); verify(answer1, times(0)).getResult(); assertFalse(result); }
Reusable Method for MCI (click to expand)
private static Commands createMockCommands() { Commands commands = mock(Commands.class); when(commands.size()).thenReturn(3); return commands; }

Mock Clone Instance #cloudstack_MCI_167

Reusable Method

private static Commands createMockCommands(CheckSshAnswer answerMock) { Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); return cmds; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_167_1

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNotNullButAnswerResultIsFalse(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: cmds

Suggested Diff
@@ VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; - Commands cmds = mock(Commands.class); - when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); + Commands cmds = createMockCommands(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNotNullButAnswerResultIsFalse() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(false); VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
private static Commands createMockCommands(CheckSshAnswer answerMock) { Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); return cmds; }

Test Case ID #cloudstack_Test_167_2

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNotNullAndAnswerResultIsTrue(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: cmds

Suggested Diff
@@ VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; - Commands cmds = mock(Commands.class); - when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); + Commands cmds = createMockCommands(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = true; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNotNullAndAnswerResultIsTrue() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(true); VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = true; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
private static Commands createMockCommands(CheckSshAnswer answerMock) { Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); return cmds; }

Mock Clone Instance #cloudstack_MCI_168

Reusable Method

private static Account createMockAccount(long accountId) { Account account = Mockito.mock(Account.class); Mockito.when(account.getAccountId()).thenReturn(accountId); return account; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_168_1

Test Case Name: testCheckTagsDeletePermission(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\tags\TaggedResourceManagerImplTest.java)

Mock Object Variable Name: caller

Suggested Diff
@@ long accountId = 1L; - Account caller = Mockito.mock(Account.class); - Mockito.when(caller.getAccountId()).thenReturn(accountId); + Account caller = createMockAccount(accountId); ResourceTag resourceTag = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag), caller); @@
Original Test Code (click to expand)
@Test public void testCheckTagsDeletePermission() { long accountId = 1L; Account caller = Mockito.mock(Account.class); Mockito.when(caller.getAccountId()).thenReturn(accountId); ResourceTag resourceTag = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag.getAccountId()).thenReturn(accountId); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag), caller); }
Reusable Method for MCI (click to expand)
private static Account createMockAccount(long accountId) { Account account = Mockito.mock(Account.class); Mockito.when(account.getAccountId()).thenReturn(accountId); return account; }

Test Case ID #cloudstack_Test_168_2

Test Case Name: testCheckTagsDeletePermissionFail(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\tags\TaggedResourceManagerImplTest.java)

Mock Object Variable Name: caller

Suggested Diff
--- original +++ refactored @@ long callerAccountId = 1L; long ownerAccountId = 2L; - Account caller = Mockito.mock(Account.class); - Mockito.when(caller.getAccountId()).thenReturn(callerAccountId); + Account caller = createMockAccount(callerAccountId); ResourceTag resourceTag1 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag1.getAccountId()).thenReturn(callerAccountId); ResourceTag resourceTag2 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag2.getAccountId()).thenReturn(ownerAccountId); Account owner = Mockito.mock(Account.class); Mockito.when(accountManager.getAccount(ownerAccountId)).thenReturn(owner); Mockito.doThrow(PermissionDeniedException.class).when(accountManager).checkAccess(caller, null, false, owner); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag1, resourceTag2), caller); @@
Original Test Code (click to expand)
@Test(expected = PermissionDeniedException.class) public void testCheckTagsDeletePermissionFail() { long callerAccountId = 1L; long ownerAccountId = 2L; Account caller = Mockito.mock(Account.class); Mockito.when(caller.getAccountId()).thenReturn(callerAccountId); ResourceTag resourceTag1 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag1.getAccountId()).thenReturn(callerAccountId); ResourceTag resourceTag2 = Mockito.mock(ResourceTag.class); Mockito.when(resourceTag2.getAccountId()).thenReturn(ownerAccountId); Account owner = Mockito.mock(Account.class); Mockito.when(accountManager.getAccount(ownerAccountId)).thenReturn(owner); Mockito.doThrow(PermissionDeniedException.class).when(accountManager).checkAccess(caller, null, false, owner); taggedResourceManagerImplSpy.checkTagsDeletePermission(List.of(resourceTag1, resourceTag2), caller); }
Reusable Method for MCI (click to expand)
private static Account createMockAccount(long accountId) { Account account = Mockito.mock(Account.class); Mockito.when(account.getAccountId()).thenReturn(accountId); return account; }

Mock Clone Instance #cloudstack_MCI_169

Reusable Method

public class MockAccount { public static Account createMockAccount(String accountName) { Account account = mock(Account.class); when(account.getAccountName()).thenReturn(accountName); return account; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_169_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); - Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("a1"); + Account acc = MockAccount.createMockAccount("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount(String accountName) { Account account = mock(Account.class); when(account.getAccountName()).thenReturn(accountName); return account; } }

Test Case ID #cloudstack_Test_169_2

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: acc

Suggested Diff
@@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK @@
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount(String accountName) { Account account = mock(Account.class); when(account.getAccountName()).thenReturn(accountName); return account; } }

Test Case ID #cloudstack_Test_169_3

Test Case Name: implementSharedNetworkUuidVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkUuidVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount(String accountName) { Account account = mock(Account.class); when(account.getAccountName()).thenReturn(accountName); return account; } }

Test Case ID #cloudstack_Test_169_4

Test Case Name: implementSharedNetworkNumericalVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkNumericalVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn("bbbb-bbbb-bbbb"); final ConfigureSharedNetworkVlanIdAnswer answer = mock(ConfigureSharedNetworkVlanIdAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount(String accountName) { Account account = mock(Account.class); when(account.getAccountName()).thenReturn(accountName); return account; } }

Test Case ID #cloudstack_Test_169_5

Test Case Name: implementSharedNetworkNumericalVlanIdWithoutL2GatewayService(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void implementSharedNetworkNumericalVlanIdWithoutL2GatewayService() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); element.implement(network, offering, dest, context); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount(String accountName) { Account account = mock(Account.class); when(account.getAccountName()).thenReturn(accountName); return account; } }

Mock Clone Instance #cloudstack_MCI_170

Reusable Method

public class MockAccount { public static Account createMockAccount(long id) { Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(id); return account; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_170_1

Test Case Name: testGetEntityOwnerIdForProject(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\ActivateProjectCmdTest.java)

Mock Object Variable Name: account

Suggested Diff
--- original +++ refactored @@ ProjectService projectService = Mockito.mock(ProjectService.class); - Account account = Mockito.mock(Account.class); - Mockito.when(account.getId()).thenReturn(2L); + Account account = MockAccount.createMockAccount(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); activateProjectCmd._projectService = projectService; Assert.assertEquals(2L, activateProjectCmd.getEntityOwnerId()); @@
Original Test Code (click to expand)
@Test public void testGetEntityOwnerIdForProject() { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); activateProjectCmd._projectService = projectService; Assert.assertEquals(2L, activateProjectCmd.getEntityOwnerId()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount(long id) { Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(id); return account; } }

Test Case ID #cloudstack_Test_170_2

Test Case Name: testGetEntityOwnerIdForProject(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\AddAccountToProjectCmdTest.java)

Mock Object Variable Name: account

Suggested Diff
--- original +++ refactored @@ ProjectService projectService = Mockito.mock(ProjectService.class); - Account account = Mockito.mock(Account.class); - Mockito.when(account.getId()).thenReturn(2L); + Account account = MockAccount.createMockAccount(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); addAccountToProjectCmd._projectService = projectService; Assert.assertEquals(2L, addAccountToProjectCmd.getEntityOwnerId()); }
Original Test Code (click to expand)
/** * * * Condition not handled in the code * * *** */ /* * @Test public void testGetEntityOwnerIdForNullProject() { * * ProjectService projectService = Mockito.mock(ProjectService.class); * Mockito * .when(projectService.getProject(Mockito.anyLong())).thenReturn(null); * addAccountToProjectCmd._projectService = projectService; * * try { addAccountToProjectCmd.getEntityOwnerId(); } * catch(InvalidParameterValueException exception) { * Assert.assertEquals("Unable to find project by id 2", * exception.getLocalizedMessage()); } * * } */ @Test public void testGetEntityOwnerIdForProject() { Project project = Mockito.mock(Project.class); Mockito.when(project.getId()).thenReturn(2L); ProjectService projectService = Mockito.mock(ProjectService.class); Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(2L); Mockito.when(projectService.getProject(Matchers.anyLong())).thenReturn(project); Mockito.when(projectService.getProjectOwner(Matchers.anyLong())).thenReturn(account); addAccountToProjectCmd._projectService = projectService; Assert.assertEquals(2L, addAccountToProjectCmd.getEntityOwnerId()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount(long id) { Account account = Mockito.mock(Account.class); Mockito.when(account.getId()).thenReturn(id); return account; } }

Mock Clone Instance #cloudstack_MCI_171

Reusable Method

public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_171_1

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + Account acc = MockAccount.createMockAccount(); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_2

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + Account acc = MockAccount.createMockAccount(); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_3

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + Account acc = MockAccount.createMockAccount(); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_4

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_5

Test Case Name: testImplementFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void testImplementFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_6

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_7

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
@@ when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_8

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_9

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_10

Test Case Name: testImplementURIException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); @@
Original Test Code (click to expand)
@Test public void testImplementURIException() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Test Case ID #cloudstack_Test_171_11

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: acc

Suggested Diff
--- original +++ refactored @@ final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); - final Account acc = mock(Account.class); - when(acc.getAccountName()).thenReturn("accountname"); + final Account acc = MockAccount.createMockAccount(); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockAccount { public static Account createMockAccount() { Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); return acc; } }

Mock Clone Instance #cloudstack_MCI_172

Reusable Method

// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_172_1

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: account

Suggested Diff
@@ final Network network = mock(Network.class); - final Account account = mock(Account.class); + // removed local mock; replaced with global field `account` final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch);
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

Test Case ID #cloudstack_Test_172_2

Test Case Name: testDesignNoElementOnPhysicalNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: account

Suggested Diff
@@ final Network network = mock(Network.class); - final Account account = mock(Account.class); + // removed local mock; replaced with global field `account` final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoElementOnPhysicalNetwork() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

Test Case ID #cloudstack_Test_172_3

Test Case Name: testDesignNoIsolationMethodSTT(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: account

Suggested Diff
@@ final Network network = mock(Network.class); - final Account account = mock(Account.class); + // removed local mock; replaced with global field `account` final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodSTT() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

Test Case ID #cloudstack_Test_172_4

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: account

Suggested Diff
@@ final Network network = mock(Network.class); - final Account account = mock(Account.class); + // removed local mock; replaced with global field `account` final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

Mock Clone Instance #cloudstack_MCI_173

Reusable Method

// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_173_1

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: account

Suggested Diff
@@ final Network network = mock(Network.class); - final Account account = mock(Account.class); + // removed local mock; replaced with global field `account` final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vcs);
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vcs); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

Test Case ID #cloudstack_Test_173_2

Test Case Name: testDesignNoIsolationMethodVCS(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: account

Suggested Diff
@@ final Network network = mock(Network.class); - final Account account = mock(Account.class); + // removed local mock; replaced with global field `account` final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodVCS() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

Test Case ID #cloudstack_Test_173_3

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: account

Suggested Diff
@@ final Network network = mock(Network.class); - final Account account = mock(Account.class); + // removed local mock; replaced with global field `account` final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null);
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Account account; // === Add to @BeforeEach method === @BeforeEach public void setUp() { account = mock(Account.class); } // === Replace local variable in test with === account;

Mock Clone Instance #cloudstack_MCI_174

Reusable Method

private static Map<String, UserTwoFactorAuthenticator> createMockUserTwoFactorAuthenticationProvidersMap(String providerKey, UserTwoFactorAuthenticator providerInstance) { Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey(providerKey)).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get(providerKey)).thenReturn(providerInstance); return userTwoFactorAuthenticationProvidersMap; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_174_1

Test Case Name: testEnableUserTwoFactorAuthenticationWhenProviderNameIsNullExpectedDefaultProviderTOTP(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: userTwoFactorAuthenticationProvidersMap

Suggested Diff
--- original +++ refactored @@ UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); - Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); - Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); - Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); + Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = createMockUserTwoFactorAuthenticationProvidersMap("totp", totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); @@
Original Test Code (click to expand)
@Test public void testEnableUserTwoFactorAuthenticationWhenProviderNameIsNullExpectedDefaultProviderTOTP() { Long userId = 1L; UserAccountVO userAccount = Mockito.mock(UserAccountVO.class); UserVO userVO = Mockito.mock(UserVO.class); Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount); Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO); Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, null); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); }
Reusable Method for MCI (click to expand)
private static Map<String, UserTwoFactorAuthenticator> createMockUserTwoFactorAuthenticationProvidersMap(String providerKey, UserTwoFactorAuthenticator providerInstance) { Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey(providerKey)).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get(providerKey)).thenReturn(providerInstance); return userTwoFactorAuthenticationProvidersMap; }

Test Case ID #cloudstack_Test_174_2

Test Case Name: testEnableUserTwoFactorAuthentication(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: userTwoFactorAuthenticationProvidersMap

Suggested Diff
--- original +++ refactored @@ UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); - Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); - Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); - Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); + Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = createMockUserTwoFactorAuthenticationProvidersMap("totp", totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); @@
Original Test Code (click to expand)
@Test public void testEnableUserTwoFactorAuthentication() { Long userId = 1L; UserAccountVO userAccount = Mockito.mock(UserAccountVO.class); UserVO userVO = Mockito.mock(UserVO.class); Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount); Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO); Mockito.when(userAccount.getDomainId()).thenReturn(1L); ConfigKey<Boolean> enableUserTwoFactorAuthentication = Mockito.mock(ConfigKey.class); AccountManagerImpl.enableUserTwoFactorAuthentication = enableUserTwoFactorAuthentication; Mockito.when(enableUserTwoFactorAuthentication.valueIn(1L)).thenReturn(true); UserTwoFactorAuthenticator totpProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("totp")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("totp")).thenReturn(totpProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; Mockito.when(totpProvider.setup2FAKey(userAccount)).thenReturn("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); Mockito.when(userDaoMock.update(userId, userVoMock)).thenReturn(true); UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.enableTwoFactorAuthentication(userId, "totp"); Assert.assertEquals("EUJEAEDVOURFZTE6OGWVTJZMI54QGMIL", response.getSecretCode()); }
Reusable Method for MCI (click to expand)
private static Map<String, UserTwoFactorAuthenticator> createMockUserTwoFactorAuthenticationProvidersMap(String providerKey, UserTwoFactorAuthenticator providerInstance) { Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey(providerKey)).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get(providerKey)).thenReturn(providerInstance); return userTwoFactorAuthenticationProvidersMap; }

Test Case ID #cloudstack_Test_174_3

Test Case Name: testVerify2FAcode(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: userTwoFactorAuthenticationProvidersMap

Suggested Diff
--- original +++ refactored @@ UserTwoFactorAuthenticator staticpinProvider = Mockito.mock(UserTwoFactorAuthenticator.class); - Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); - Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("staticpin")).thenReturn(true); - Mockito.when(userTwoFactorAuthenticationProvidersMap.get("staticpin")).thenReturn(staticpinProvider); + Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = createMockUserTwoFactorAuthenticationProvidersMap("staticpin", staticpinProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; accountManagerImpl.verifyUsingTwoFactorAuthenticationCode("352352", 1L, 1L); @@
Original Test Code (click to expand)
@Test public void testVerify2FAcode() { AccountVO accountMock = Mockito.mock(AccountVO.class); Account caller = CallContext.current().getCallingAccount(); Mockito.when(caller.getId()).thenReturn(1L); Mockito.lenient().when(_accountService.getActiveAccountById(1L)).thenReturn(accountMock); Mockito.when(_accountService.getUserAccountById(1L)).thenReturn(userAccountVO); Mockito.when(userAccountVO.isUser2faEnabled()).thenReturn(true); Mockito.when(userAccountVO.getUser2faProvider()).thenReturn("staticpin"); Mockito.when(userAccountVO.getKeyFor2fa()).thenReturn("352352"); UserTwoFactorAuthenticator staticpinProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("staticpin")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("staticpin")).thenReturn(staticpinProvider); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; accountManagerImpl.verifyUsingTwoFactorAuthenticationCode("352352", 1L, 1L); }
Reusable Method for MCI (click to expand)
private static Map<String, UserTwoFactorAuthenticator> createMockUserTwoFactorAuthenticationProvidersMap(String providerKey, UserTwoFactorAuthenticator providerInstance) { Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey(providerKey)).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get(providerKey)).thenReturn(providerInstance); return userTwoFactorAuthenticationProvidersMap; }

Test Case ID #cloudstack_Test_174_4

Test Case Name: testEnable2FAcode(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\user\AccountManagerImplTest.java)

Mock Object Variable Name: userTwoFactorAuthenticationProvidersMap

Suggested Diff
--- original +++ refactored @@ UserTwoFactorAuthenticator staticpinProvider = Mockito.mock(UserTwoFactorAuthenticator.class); - Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); - Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("staticpin")).thenReturn(true); - Mockito.when(userTwoFactorAuthenticationProvidersMap.get("staticpin")).thenReturn(staticpinProvider); + Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = createMockUserTwoFactorAuthenticationProvidersMap("staticpin", staticpinProvider); Mockito.when(staticpinProvider.setup2FAKey(userAccountVO)).thenReturn("345543"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; @@
Original Test Code (click to expand)
@Test public void testEnable2FAcode() { SetupUserTwoFactorAuthenticationCmd cmd = Mockito.mock(SetupUserTwoFactorAuthenticationCmd.class); Mockito.when(cmd.getProvider()).thenReturn("staticpin"); AccountVO accountMock = Mockito.mock(AccountVO.class); Mockito.when(callingAccount.getId()).thenReturn(1L); Mockito.when(callingUser.getId()).thenReturn(1L); // Calling account is user account i.e normal account CallContext.register(callingUser, callingAccount); Mockito.lenient().when(_accountService.getActiveAccountById(1L)).thenReturn(accountMock); Mockito.when(userAccountDaoMock.findById(1L)).thenReturn(userAccountVO); Mockito.when(userDaoMock.findById(1L)).thenReturn(userVoMock); Mockito.when(userAccountVO.getDomainId()).thenReturn(1L); Mockito.when(enableUserTwoFactorAuthenticationMock.valueIn(1L)).thenReturn(true); Mockito.when(cmd.getEnable()).thenReturn(true); UserTwoFactorAuthenticator staticpinProvider = Mockito.mock(UserTwoFactorAuthenticator.class); Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey("staticpin")).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get("staticpin")).thenReturn(staticpinProvider); Mockito.when(staticpinProvider.setup2FAKey(userAccountVO)).thenReturn("345543"); Mockito.when(userDaoMock.createForUpdate()).thenReturn(userVoMock); AccountManagerImpl.userTwoFactorAuthenticationProvidersMap = userTwoFactorAuthenticationProvidersMap; UserTwoFactorAuthenticationSetupResponse response = accountManagerImpl.setupUserTwoFactorAuthentication(cmd); Assert.assertEquals("345543", response.getSecretCode()); }
Reusable Method for MCI (click to expand)
private static Map<String, UserTwoFactorAuthenticator> createMockUserTwoFactorAuthenticationProvidersMap(String providerKey, UserTwoFactorAuthenticator providerInstance) { Map<String, UserTwoFactorAuthenticator> userTwoFactorAuthenticationProvidersMap = Mockito.mock(HashMap.class); Mockito.when(userTwoFactorAuthenticationProvidersMap.containsKey(providerKey)).thenReturn(true); Mockito.when(userTwoFactorAuthenticationProvidersMap.get(providerKey)).thenReturn(providerInstance); return userTwoFactorAuthenticationProvidersMap; }

Mock Clone Instance #cloudstack_MCI_175

Reusable Method

private static ListUserDataCmd createMockListUserDataCmd(String accountName, long domainId, long projectId, boolean recursive) { ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn(accountName); when(cmd.getDomainId()).thenReturn(domainId); when(cmd.getProjectId()).thenReturn(projectId); when(cmd.isRecursive()).thenReturn(recursive); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_175_1

Test Case Name: testListUserDataById(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); - when(cmd.getAccountName()).thenReturn("testAccountName"); - when(cmd.getDomainId()).thenReturn(1L); - when(cmd.getProjectId()).thenReturn(2L); - when(cmd.getId()).thenReturn(1L); - when(cmd.isRecursive()).thenReturn(false); + ListUserDataCmd cmd = createMockListUserDataCmd("testAccountName", 1L, 2L, false); + when(cmd.getId()).thenReturn(1L); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); @@
Original Test Code (click to expand)
@Test public void testListUserDataById() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
private static ListUserDataCmd createMockListUserDataCmd(String accountName, long domainId, long projectId, boolean recursive) { ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn(accountName); when(cmd.getDomainId()).thenReturn(domainId); when(cmd.getProjectId()).thenReturn(projectId); when(cmd.isRecursive()).thenReturn(recursive); return cmd; }

Test Case ID #cloudstack_Test_175_2

Test Case Name: testListUserDataByName(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); - when(cmd.getAccountName()).thenReturn("testAccountName"); - when(cmd.getDomainId()).thenReturn(1L); - when(cmd.getProjectId()).thenReturn(2L); - when(cmd.getName()).thenReturn("testSearchUserdataName"); - when(cmd.isRecursive()).thenReturn(false); + ListUserDataCmd cmd = createMockListUserDataCmd("testAccountName", 1L, 2L, false); + when(cmd.getName()).thenReturn("testSearchUserdataName"); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); @@
Original Test Code (click to expand)
@Test public void testListUserDataByName() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getName()).thenReturn("testSearchUserdataName"); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
private static ListUserDataCmd createMockListUserDataCmd(String accountName, long domainId, long projectId, boolean recursive) { ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn(accountName); when(cmd.getDomainId()).thenReturn(domainId); when(cmd.getProjectId()).thenReturn(projectId); when(cmd.isRecursive()).thenReturn(recursive); return cmd; }

Test Case ID #cloudstack_Test_175_3

Test Case Name: testListUserDataByKeyword(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); - when(cmd.getAccountName()).thenReturn("testAccountName"); - when(cmd.getDomainId()).thenReturn(1L); - when(cmd.getProjectId()).thenReturn(2L); - when(cmd.getKeyword()).thenReturn("testSearchUserdataKeyword"); - when(cmd.isRecursive()).thenReturn(false); + ListUserDataCmd cmd = createMockListUserDataCmd("testAccountName", 1L, 2L, false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); @@
Original Test Code (click to expand)
@Test public void testListUserDataByKeyword() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getKeyword()).thenReturn("testSearchUserdataKeyword"); when(cmd.isRecursive()).thenReturn(false); UserDataVO userData = Mockito.mock(UserDataVO.class); SearchBuilder<UserDataVO> sb = Mockito.mock(SearchBuilder.class); when(_userDataDao.createSearchBuilder()).thenReturn(sb); when(sb.entity()).thenReturn(userData); SearchCriteria<UserDataVO> sc = Mockito.mock(SearchCriteria.class); when(sb.create()).thenReturn(sc); List<UserDataVO> userDataList = new ArrayList<UserDataVO>(); userDataList.add(userData); Pair<List<UserDataVO>, Integer> result = new Pair(userDataList, 1); when(_userDataDao.searchAndCount(nullable(SearchCriteria.class), nullable(Filter.class))).thenReturn(result); Pair<List<? extends UserData>, Integer> userdataResultList = spy.listUserDatas(cmd); Assert.assertEquals(userdataResultList.first().get(0), userDataList.get(0)); }
Reusable Method for MCI (click to expand)
private static ListUserDataCmd createMockListUserDataCmd(String accountName, long domainId, long projectId, boolean recursive) { ListUserDataCmd cmd = Mockito.mock(ListUserDataCmd.class); when(cmd.getAccountName()).thenReturn(accountName); when(cmd.getDomainId()).thenReturn(domainId); when(cmd.getProjectId()).thenReturn(projectId); when(cmd.isRecursive()).thenReturn(recursive); return cmd; }

Mock Clone Instance #cloudstack_MCI_176

Reusable Method

private static CreateIpv6FirewallRuleCmd createMockCreateIpv6FirewallRuleCmd(int sourcePortStart) { CreateIpv6FirewallRuleCmd cmd = Mockito.mock(CreateIpv6FirewallRuleCmd.class); Mockito.when(cmd.getSourcePortStart()).thenReturn(sourcePortStart); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_176_1

Test Case Name: testStartPortCidrCreateIpv6FirewallRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\Ipv6ServiceImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ registerCallContext(); - CreateIpv6FirewallRuleCmd cmd = Mockito.mock(CreateIpv6FirewallRuleCmd.class); - Mockito.when(cmd.getSourcePortStart()).thenReturn(800000); + CreateIpv6FirewallRuleCmd cmd = createMockCreateIpv6FirewallRuleCmd(800000); try { ipv6Service.createIpv6FirewallRule(cmd); } catch (NetworkRuleConflictException e) { throw new RuntimeException(e); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testStartPortCidrCreateIpv6FirewallRule() { registerCallContext(); CreateIpv6FirewallRuleCmd cmd = Mockito.mock(CreateIpv6FirewallRuleCmd.class); Mockito.when(cmd.getSourcePortStart()).thenReturn(800000); try { ipv6Service.createIpv6FirewallRule(cmd); } catch (NetworkRuleConflictException e) { throw new RuntimeException(e); } }
Reusable Method for MCI (click to expand)
private static CreateIpv6FirewallRuleCmd createMockCreateIpv6FirewallRuleCmd(int sourcePortStart) { CreateIpv6FirewallRuleCmd cmd = Mockito.mock(CreateIpv6FirewallRuleCmd.class); Mockito.when(cmd.getSourcePortStart()).thenReturn(sourcePortStart); return cmd; }

Test Case ID #cloudstack_Test_176_2

Test Case Name: testPortRangeCidrCreateIpv6FirewallRule(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\Ipv6ServiceImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ registerCallContext(); - CreateIpv6FirewallRuleCmd cmd = Mockito.mock(CreateIpv6FirewallRuleCmd.class); - Mockito.when(cmd.getSourcePortStart()).thenReturn(900); - Mockito.when(cmd.getSourcePortEnd()).thenReturn(800); + CreateIpv6FirewallRuleCmd cmd = createMockCreateIpv6FirewallRuleCmd(900); + Mockito.when(cmd.getSourcePortEnd()).thenReturn(800); try { ipv6Service.createIpv6FirewallRule(cmd); } catch (NetworkRuleConflictException e) { throw new RuntimeException(e); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testPortRangeCidrCreateIpv6FirewallRule() { registerCallContext(); CreateIpv6FirewallRuleCmd cmd = Mockito.mock(CreateIpv6FirewallRuleCmd.class); Mockito.when(cmd.getSourcePortStart()).thenReturn(900); Mockito.when(cmd.getSourcePortEnd()).thenReturn(800); try { ipv6Service.createIpv6FirewallRule(cmd); } catch (NetworkRuleConflictException e) { throw new RuntimeException(e); } }
Reusable Method for MCI (click to expand)
private static CreateIpv6FirewallRuleCmd createMockCreateIpv6FirewallRuleCmd(int sourcePortStart) { CreateIpv6FirewallRuleCmd cmd = Mockito.mock(CreateIpv6FirewallRuleCmd.class); Mockito.when(cmd.getSourcePortStart()).thenReturn(sourcePortStart); return cmd; }

Mock Clone Instance #cloudstack_MCI_177

Reusable Method

private static LoadBalancingRule.LbStickinessPolicy createMockLbStickinessPolicy(String methodNameReturn, List<Pair<String, String>> paramsReturn) { LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); when(lbStickinessPolicy.getMethodName()).thenReturn(methodNameReturn); when(lbStickinessPolicy.getParams()).thenReturn(paramsReturn); return lbStickinessPolicy; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_177_1

Test Case Name: applyLBRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: lbStickinessPolicy

Suggested Diff
--- original +++ refactored @@ LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); - LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); - List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); + List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); + LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = createMockLbStickinessPolicy("AppCookie", pairList); + List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); - when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); - List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); - when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleSuccessTest() { User caller = mock(User.class); Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerListenerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); LoadBalancingRule.LbSslCert lbSslCert = mock(LoadBalancingRule.LbSslCert.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); when(accountMgr.getActiveUser(anyLong())).thenReturn(caller); when(caller.getApiKey()).thenReturn("apikey"); when(caller.getSecretKey()).thenReturn("secreatekey"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(443); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(loadBalancingRule1.getLbSslCert()).thenReturn(lbSslCert); when(loadBalancingRule1.getUuid()).thenReturn("loadbalancingruleuuid"); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(tungstenGuestNetworkIpAddressDao.findByNetworkIdAndPublicIp(anyLong(), anyString())).thenReturn(tungstenGuestNetworkIpAddressVO); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerListenerCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerListenerAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerListenerAnswer.getResult()).thenReturn(true); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("enabled"); when(tungstenService.updateLoadBalancer(any(), any())).thenReturn(true); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(EncryptionUtil.generateSignature(anyString(), anyString())).thenReturn("generatedString"); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertTrue(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
private static LoadBalancingRule.LbStickinessPolicy createMockLbStickinessPolicy(String methodNameReturn, List<Pair<String, String>> paramsReturn) { LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); when(lbStickinessPolicy.getMethodName()).thenReturn(methodNameReturn); when(lbStickinessPolicy.getParams()).thenReturn(paramsReturn); return lbStickinessPolicy; }

Test Case ID #cloudstack_Test_177_2

Test Case Name: applyLBRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: lbStickinessPolicy

Suggested Diff
--- original +++ refactored @@ LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); - LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); + LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = createMockLbStickinessPolicy("AppCookie", pairList); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); - when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); - when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); @@
Original Test Code (click to expand)
@Test public void applyLBRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); Ip ip = mock(Ip.class); LoadBalancingRule loadBalancingRule1 = mock(LoadBalancingRule.class); LoadBalancerVMMapVO loadBalancerVMMapVO = mock(LoadBalancerVMMapVO.class); LoadBalancerVO loadBalancerVO = mock(LoadBalancerVO.class); LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); List<LoadBalancingRule> loadBalancingRuleList1 = List.of(loadBalancingRule1); List<LoadBalancerVMMapVO> loadBalancerVMMapVOList = List.of(loadBalancerVMMapVO); List<LoadBalancingRule.LbStickinessPolicy> lbStickinessPolicyList = List.of(lbStickinessPolicy); List<LoadBalancerVO> loadBalancerVOList = List.of(loadBalancerVO); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenGuestNetworkIpAddressVO tungstenGuestNetworkIpAddressVO = mock(TungstenGuestNetworkIpAddressVO.class); TungstenAnswer createTungstenNetworkLoadbalancerAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerPoolAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenLoadBalancerMemberAnswer = mock(TungstenAnswer.class); TungstenAnswer updateTungstenHealthMonitorAnswer = mock(TungstenAnswer.class); List<Pair<String, String>> pairList = List.of(new Pair<>("cookieName", "cookieValue")); TungstenFabricLBHealthMonitorVO tungstenFabricLBHealthMonitorVO = mock(TungstenFabricLBHealthMonitorVO.class); when(lbStickinessPolicy.getMethodName()).thenReturn("AppCookie"); when(lbStickinessPolicy.getParams()).thenReturn(pairList); when(loadBalancingRule1.getId()).thenReturn(1L); when(loadBalancingRule1.getState()).thenReturn(FirewallRule.State.Add); when(loadBalancingRule1.getAlgorithm()).thenReturn("roundrobin"); when(loadBalancingRule1.getSourcePortStart()).thenReturn(80); when(loadBalancingRule1.getDefaultPortStart()).thenReturn(443); when(loadBalancingRule1.getStickinessPolicies()).thenReturn(lbStickinessPolicyList); when(loadBalancingRule1.getSourceIp()).thenReturn(ip); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(ipAddressVO.getAddress()).thenReturn(ip); when(lbVmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(loadBalancerVMMapVOList); when(tungstenGuestNetworkIpAddressVO.getGuestIpAddress()).thenReturn(ip); when(ip.addr()).thenReturn("10.10.10.10"); when(ipAddressMgr.acquireGuestIpAddress(any(), any())).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkLoadbalancerCommand.class), anyLong())).thenReturn(createTungstenNetworkLoadbalancerAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerPoolCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerPoolAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerMemberCommand.class), anyLong())).thenReturn(updateTungstenLoadBalancerMemberAnswer); when(createTungstenNetworkLoadbalancerAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerPoolAnswer.getResult()).thenReturn(true); when(updateTungstenLoadBalancerMemberAnswer.getResult()).thenReturn(true); when(configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key())).thenReturn("disabled"); when(tungstenService.updateLoadBalancerSsl(any(), any())).thenReturn(false); when(lbDao.listByIpAddress(anyLong())).thenReturn(loadBalancerVOList); when(tungstenFabricLBHealthMonitorDao.findByLbId(anyLong())).thenReturn(tungstenFabricLBHealthMonitorVO); when(updateTungstenHealthMonitorAnswer.getResult()).thenReturn(true); when(tungstenFabricUtils.sendTungstenCommand(any(UpdateTungstenLoadBalancerHealthMonitorCommand.class), anyLong())).thenReturn(updateTungstenHealthMonitorAnswer); assertFalse(tungstenElement.applyLBRules(network, loadBalancingRuleList1)); }
Reusable Method for MCI (click to expand)
private static LoadBalancingRule.LbStickinessPolicy createMockLbStickinessPolicy(String methodNameReturn, List<Pair<String, String>> paramsReturn) { LoadBalancingRule.LbStickinessPolicy lbStickinessPolicy = mock(LoadBalancingRule.LbStickinessPolicy.class); when(lbStickinessPolicy.getMethodName()).thenReturn(methodNameReturn); when(lbStickinessPolicy.getParams()).thenReturn(paramsReturn); return lbStickinessPolicy; }

Mock Clone Instance #cloudstack_MCI_178

Reusable Method

private static VirtualMachine createMockVirtualMachine() { VirtualMachine vm = mock(VirtualMachine.class); when(vm.getHostId()).thenReturn(1L); return vm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_178_1

Test Case Name: testSendStopWithOkAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ VirtualMachineGuru guru = mock(VirtualMachineGuru.class); - VirtualMachine vm = mock(VirtualMachine.class); + VirtualMachine vm = createMockVirtualMachine(); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "ok", true); when(profile.getVirtualMachine()).thenReturn(vm); - when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); Assert.assertTrue(actual); @@
Original Test Code (click to expand)
@Test public void testSendStopWithOkAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "ok", true); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); Assert.assertTrue(actual); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine() { VirtualMachine vm = mock(VirtualMachine.class); when(vm.getHostId()).thenReturn(1L); return vm; }

Test Case ID #cloudstack_Test_178_2

Test Case Name: testSendStopWithFailAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ VirtualMachineGuru guru = mock(VirtualMachineGuru.class); - VirtualMachine vm = mock(VirtualMachine.class); + VirtualMachine vm = createMockVirtualMachine(); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "fail", false); when(profile.getVirtualMachine()).thenReturn(vm); - when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual);
Original Test Code (click to expand)
@Test public void testSendStopWithFailAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "fail", false); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine() { VirtualMachine vm = mock(VirtualMachine.class); when(vm.getHostId()).thenReturn(1L); return vm; }

Test Case ID #cloudstack_Test_178_3

Test Case Name: testSendStopWithNullAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ VirtualMachineGuru guru = mock(VirtualMachineGuru.class); - VirtualMachine vm = mock(VirtualMachine.class); + VirtualMachine vm = createMockVirtualMachine(); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); - when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(null); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); } @@
Original Test Code (click to expand)
@Test public void testSendStopWithNullAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(null); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine() { VirtualMachine vm = mock(VirtualMachine.class); when(vm.getHostId()).thenReturn(1L); return vm; }

Mock Clone Instance #cloudstack_MCI_179

Reusable Method

public class MockVirtualMachine { public static VirtualMachine createMockVirtualMachine(long vmId) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); return vm; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_179_1

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ @Test public void testProcessWithEmptyPlan() { - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - when(vm.getId()).thenReturn(vmId); + VirtualMachine vm = MockVirtualMachine.createMockVirtualMachine(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); } @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachine { public static VirtualMachine createMockVirtualMachine(long vmId) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); return vm; } }

Test Case ID #cloudstack_Test_179_2

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ public void testProcessWithPlan() { - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - when(vm.getId()).thenReturn(vmId); + VirtualMachine vm = MockVirtualMachine.createMockVirtualMachine(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); @@
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.LOWER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachine { public static VirtualMachine createMockVirtualMachine(long vmId) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); return vm; } }

Test Case ID #cloudstack_Test_179_3

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ @Test public void testProcessWithNotRunningVM() { - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - when(vm.getId()).thenReturn(vmId); + VirtualMachine vm = MockVirtualMachine.createMockVirtualMachine(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); } @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachine { public static VirtualMachine createMockVirtualMachine(long vmId) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); return vm; } }

Test Case ID #cloudstack_Test_179_4

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ @Test public void testProcessWithEmptyPlan() { - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - when(vm.getId()).thenReturn(vmId); + VirtualMachine vm = MockVirtualMachine.createMockVirtualMachine(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); } @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachine { public static VirtualMachine createMockVirtualMachine(long vmId) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); return vm; } }

Test Case ID #cloudstack_Test_179_5

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ @Test public void testProcessWithPlan() { - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - when(vm.getId()).thenReturn(vmId); + VirtualMachine vm = MockVirtualMachine.createMockVirtualMachine(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.HIGHER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.HIGHER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachine { public static VirtualMachine createMockVirtualMachine(long vmId) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); return vm; } }

Test Case ID #cloudstack_Test_179_6

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ public void testProcessWithNotRunningVM() { - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - when(vm.getId()).thenReturn(vmId); + VirtualMachine vm = MockVirtualMachine.createMockVirtualMachine(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class);
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachine { public static VirtualMachine createMockVirtualMachine(long vmId) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); return vm; } }

Mock Clone Instance #cloudstack_MCI_180

Reusable Method

// === Declare in class scope === private VirtualMachine virtualMachine; // === Add to @BeforeEach method === @BeforeEach public void setUp() { virtualMachine = Mockito.mock(VirtualMachine.class); } // === Replace local variable in test with === virtualMachine;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_180_1

Test Case Name: testWithSingleHost(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\ha\KVMFencerTest.java)

Mock Object Variable Name: virtualMachine

Suggested Diff
@@ Mockito.when(host.getId()).thenReturn(1l); - VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); + // removed local mock; replaced with global field `virtualMachine` Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Collections.singletonList(host)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host));
Original Test Code (click to expand)
@Test public void testWithSingleHost() { HostVO host = Mockito.mock(HostVO.class); Mockito.when(host.getClusterId()).thenReturn(1l); Mockito.when(host.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(host.getDataCenterId()).thenReturn(1l); Mockito.when(host.getPodId()).thenReturn(1l); Mockito.when(host.getStatus()).thenReturn(Status.Up); Mockito.when(host.getId()).thenReturn(1l); VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Collections.singletonList(host)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachine virtualMachine; // === Add to @BeforeEach method === @BeforeEach public void setUp() { virtualMachine = Mockito.mock(VirtualMachine.class); } // === Replace local variable in test with === virtualMachine;

Test Case ID #cloudstack_Test_180_2

Test Case Name: testWithSingleHostDown(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\ha\KVMFencerTest.java)

Mock Object Variable Name: virtualMachine

Suggested Diff
@@ @Test public void testWithSingleHostDown() { HostVO host = Mockito.mock(HostVO.class); Mockito.when(host.getClusterId()).thenReturn(1l); Mockito.when(host.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(host.getDataCenterId()).thenReturn(1l); Mockito.when(host.getPodId()).thenReturn(1l); Mockito.when(host.getStatus()).thenReturn(Status.Down); Mockito.when(host.getId()).thenReturn(1l); - VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); + // removed local mock; replaced with global field `virtualMachine` Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Collections.singletonList(host)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host)); }
Original Test Code (click to expand)
@Test public void testWithSingleHostDown() { HostVO host = Mockito.mock(HostVO.class); Mockito.when(host.getClusterId()).thenReturn(1l); Mockito.when(host.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(host.getDataCenterId()).thenReturn(1l); Mockito.when(host.getPodId()).thenReturn(1l); Mockito.when(host.getStatus()).thenReturn(Status.Down); Mockito.when(host.getId()).thenReturn(1l); VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Collections.singletonList(host)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachine virtualMachine; // === Add to @BeforeEach method === @BeforeEach public void setUp() { virtualMachine = Mockito.mock(VirtualMachine.class); } // === Replace local variable in test with === virtualMachine;

Test Case ID #cloudstack_Test_180_3

Test Case Name: testWithHosts(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\ha\KVMFencerTest.java)

Mock Object Variable Name: virtualMachine

Suggested Diff
@@ Mockito.when(host.getId()).thenReturn(2l); - VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); + // removed local mock; replaced with global field `virtualMachine` Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Arrays.asList(host, secondHost)); FenceAnswer answer = new FenceAnswer(null, true, "ok"); Mockito.when(agentManager.send(Matchers.anyLong(), Matchers.any(FenceCommand.class))).thenReturn(answer); - Assert.assertTrue(fencer.fenceOff(virtualMachine, host)); + Assert.assertTrue(fencer.fenceOff(virtualMachine, host));
Original Test Code (click to expand)
@Test public void testWithHosts() throws AgentUnavailableException, OperationTimedoutException { HostVO host = Mockito.mock(HostVO.class); Mockito.when(host.getClusterId()).thenReturn(1l); Mockito.when(host.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(host.getStatus()).thenReturn(Status.Up); Mockito.lenient().when(host.getDataCenterId()).thenReturn(1l); Mockito.lenient().when(host.getPodId()).thenReturn(1l); Mockito.when(host.getId()).thenReturn(1l); HostVO secondHost = Mockito.mock(HostVO.class); Mockito.lenient().when(secondHost.getClusterId()).thenReturn(1l); Mockito.when(secondHost.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(secondHost.getStatus()).thenReturn(Status.Up); Mockito.lenient().when(secondHost.getDataCenterId()).thenReturn(1l); Mockito.lenient().when(secondHost.getPodId()).thenReturn(1l); Mockito.when(host.getId()).thenReturn(2l); VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Arrays.asList(host, secondHost)); FenceAnswer answer = new FenceAnswer(null, true, "ok"); Mockito.when(agentManager.send(Matchers.anyLong(), Matchers.any(FenceCommand.class))).thenReturn(answer); Assert.assertTrue(fencer.fenceOff(virtualMachine, host)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachine virtualMachine; // === Add to @BeforeEach method === @BeforeEach public void setUp() { virtualMachine = Mockito.mock(VirtualMachine.class); } // === Replace local variable in test with === virtualMachine;

Test Case ID #cloudstack_Test_180_4

Test Case Name: testWithFailingFence(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\ha\KVMFencerTest.java)

Mock Object Variable Name: virtualMachine

Suggested Diff
@@ Mockito.when(host.getId()).thenReturn(2l); - VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); + // removed local mock; replaced with global field `virtualMachine` Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Arrays.asList(host, secondHost)); Mockito.when(agentManager.send(Matchers.anyLong(), Matchers.any(FenceCommand.class))).thenThrow(new AgentUnavailableException(2l)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host));
Original Test Code (click to expand)
@Test public void testWithFailingFence() throws AgentUnavailableException, OperationTimedoutException { HostVO host = Mockito.mock(HostVO.class); Mockito.when(host.getClusterId()).thenReturn(1l); Mockito.when(host.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(host.getStatus()).thenReturn(Status.Up); Mockito.when(host.getDataCenterId()).thenReturn(1l); Mockito.when(host.getPodId()).thenReturn(1l); Mockito.when(host.getId()).thenReturn(1l); HostVO secondHost = Mockito.mock(HostVO.class); Mockito.lenient().when(secondHost.getClusterId()).thenReturn(1l); Mockito.when(secondHost.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(secondHost.getStatus()).thenReturn(Status.Up); Mockito.lenient().when(secondHost.getDataCenterId()).thenReturn(1l); Mockito.lenient().when(secondHost.getPodId()).thenReturn(1l); Mockito.when(host.getId()).thenReturn(2l); VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Arrays.asList(host, secondHost)); Mockito.when(agentManager.send(Matchers.anyLong(), Matchers.any(FenceCommand.class))).thenThrow(new AgentUnavailableException(2l)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachine virtualMachine; // === Add to @BeforeEach method === @BeforeEach public void setUp() { virtualMachine = Mockito.mock(VirtualMachine.class); } // === Replace local variable in test with === virtualMachine;

Test Case ID #cloudstack_Test_180_5

Test Case Name: testWithTimeoutingFence(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\ha\KVMFencerTest.java)

Mock Object Variable Name: virtualMachine

Suggested Diff
@@ Mockito.when(host.getId()).thenReturn(2l); - VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); + // removed local mock; replaced with global field `virtualMachine` Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Arrays.asList(host, secondHost)); Mockito.when(agentManager.send(Matchers.anyLong(), Matchers.any(FenceCommand.class))).thenThrow(new OperationTimedoutException(null, 2l, 0l, 0, false)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host));
Original Test Code (click to expand)
@Test public void testWithTimeoutingFence() throws AgentUnavailableException, OperationTimedoutException { HostVO host = Mockito.mock(HostVO.class); Mockito.when(host.getClusterId()).thenReturn(1l); Mockito.when(host.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(host.getStatus()).thenReturn(Status.Up); Mockito.when(host.getDataCenterId()).thenReturn(1l); Mockito.when(host.getPodId()).thenReturn(1l); Mockito.when(host.getId()).thenReturn(1l); HostVO secondHost = Mockito.mock(HostVO.class); Mockito.lenient().when(secondHost.getClusterId()).thenReturn(1l); Mockito.when(secondHost.getHypervisorType()).thenReturn(HypervisorType.KVM); Mockito.when(secondHost.getStatus()).thenReturn(Status.Up); Mockito.lenient().when(secondHost.getDataCenterId()).thenReturn(1l); Mockito.lenient().when(secondHost.getPodId()).thenReturn(1l); Mockito.when(host.getId()).thenReturn(2l); VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); Mockito.when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Arrays.asList(host, secondHost)); Mockito.when(agentManager.send(Matchers.anyLong(), Matchers.any(FenceCommand.class))).thenThrow(new OperationTimedoutException(null, 2l, 0l, 0, false)); Assert.assertFalse(fencer.fenceOff(virtualMachine, host)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachine virtualMachine; // === Add to @BeforeEach method === @BeforeEach public void setUp() { virtualMachine = Mockito.mock(VirtualMachine.class); } // === Replace local variable in test with === virtualMachine;

Test Case ID #cloudstack_Test_180_6

Test Case Name: testWithSingleNotKVM(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\ha\KVMFencerTest.java)

Mock Object Variable Name: virtualMachine

Suggested Diff
@@ Mockito.lenient().when(host.getPodId()).thenReturn(1l); - VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); + // removed local mock; replaced with global field `virtualMachine` Mockito.lenient().when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Collections.singletonList(host)); Assert.assertNull(fencer.fenceOff(virtualMachine, host));
Original Test Code (click to expand)
@Test public void testWithSingleNotKVM() { HostVO host = Mockito.mock(HostVO.class); Mockito.lenient().when(host.getClusterId()).thenReturn(1l); Mockito.when(host.getHypervisorType()).thenReturn(HypervisorType.Any); Mockito.lenient().when(host.getStatus()).thenReturn(Status.Down); Mockito.lenient().when(host.getId()).thenReturn(1l); Mockito.lenient().when(host.getDataCenterId()).thenReturn(1l); Mockito.lenient().when(host.getPodId()).thenReturn(1l); VirtualMachine virtualMachine = Mockito.mock(VirtualMachine.class); Mockito.lenient().when(resourceManager.listAllHostsInCluster(1l)).thenReturn(Collections.singletonList(host)); Assert.assertNull(fencer.fenceOff(virtualMachine, host)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachine virtualMachine; // === Add to @BeforeEach method === @BeforeEach public void setUp() { virtualMachine = Mockito.mock(VirtualMachine.class); } // === Replace local variable in test with === virtualMachine;

Mock Clone Instance #cloudstack_MCI_181

Reusable Method

private static VirtualMachine createMockVirtualMachine(Long idReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(idReturn); return vm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_181_1

Test Case Name: testPublishedEventResourceWithCallContext(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\event\ActionEventUtilsTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - Mockito.when(vm.getId()).thenReturn(resourceId); + VirtualMachine vm = createMockVirtualMachine(resourceId); Mockito.when(entityMgr.validEntityType(VirtualMachine.class)).thenReturn(true); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.onActionEvent(USER_ID, ACCOUNT_ID, account.getDomainId(), EventTypes.EVENT_VM_START, "Test event", null, null); checkEventResourceAndUnregisterContext(resourceId, resourceUuid, resourceType); @@
Original Test Code (click to expand)
@Test public void testPublishedEventResourceWithCallContext() { CallContext.register(user, account); final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(resourceId); Mockito.when(entityMgr.validEntityType(VirtualMachine.class)).thenReturn(true); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.onActionEvent(USER_ID, ACCOUNT_ID, account.getDomainId(), EventTypes.EVENT_VM_START, "Test event", null, null); checkEventResourceAndUnregisterContext(resourceId, resourceUuid, resourceType); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine(Long idReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(idReturn); return vm; }

Test Case ID #cloudstack_Test_181_2

Test Case Name: testScheduledEvent(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\event\ActionEventUtilsTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - Mockito.when(vm.getId()).thenReturn(resourceId); + VirtualMachine vm = createMockVirtualMachine(resourceId); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.onScheduledActionEvent(USER_ID, ACCOUNT_ID, EventTypes.EVENT_VM_START, "Test event", resourceId, resourceType, true, 0L); Assert.assertEquals(publishedEvents.size(), 1); Event event = publishedEvents.get(0); JsonObject json = new JsonParser().parse(event.getDescription()).getAsJsonObject(); Assert.assertTrue(json.has("status")); Assert.assertEquals(json.get("status").getAsString(), com.cloud.event.Event.State.Scheduled.toString()); Assert.assertEquals(persistedEvents.size(), 1); EventVO eventVO = persistedEvents.get(0); Assert.assertEquals(eventVO.getState(), com.cloud.event.Event.State.Scheduled); CallContext.unregister(); @@
Original Test Code (click to expand)
@Test public void testScheduledEvent() { CallContext.register(user, account); final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(resourceId); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.onScheduledActionEvent(USER_ID, ACCOUNT_ID, EventTypes.EVENT_VM_START, "Test event", resourceId, resourceType, true, 0L); Assert.assertEquals(publishedEvents.size(), 1); Event event = publishedEvents.get(0); JsonObject json = new JsonParser().parse(event.getDescription()).getAsJsonObject(); Assert.assertTrue(json.has("status")); Assert.assertEquals(json.get("status").getAsString(), com.cloud.event.Event.State.Scheduled.toString()); Assert.assertEquals(persistedEvents.size(), 1); EventVO eventVO = persistedEvents.get(0); Assert.assertEquals(eventVO.getState(), com.cloud.event.Event.State.Scheduled); CallContext.unregister(); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine(Long idReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(idReturn); return vm; }

Test Case ID #cloudstack_Test_181_3

Test Case Name: testCreatedEvent(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\event\ActionEventUtilsTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - Mockito.when(vm.getId()).thenReturn(resourceId); + VirtualMachine vm = createMockVirtualMachine(resourceId); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.onCreatedActionEvent(USER_ID, ACCOUNT_ID, EventVO.LEVEL_INFO, EventTypes.EVENT_VM_START, true, "Test event", resourceId, resourceType); @@
Original Test Code (click to expand)
@Test public void testCreatedEvent() { CallContext.register(user, account); final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(resourceId); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.onCreatedActionEvent(USER_ID, ACCOUNT_ID, EventVO.LEVEL_INFO, EventTypes.EVENT_VM_START, true, "Test event", resourceId, resourceType); Assert.assertEquals(publishedEvents.size(), 1); Event event = publishedEvents.get(0); JsonObject json = new JsonParser().parse(event.getDescription()).getAsJsonObject(); Assert.assertTrue(json.has("status")); Assert.assertEquals(json.get("status").getAsString(), com.cloud.event.Event.State.Created.toString()); Assert.assertEquals(persistedEvents.size(), 1); EventVO eventVO = persistedEvents.get(0); Assert.assertEquals(eventVO.getState(), com.cloud.event.Event.State.Created); CallContext.unregister(); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine(Long idReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(idReturn); return vm; }

Test Case ID #cloudstack_Test_181_4

Test Case Name: testNestedEvent(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\event\ActionEventUtilsTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - Mockito.when(vm.getId()).thenReturn(resourceId); + VirtualMachine vm = createMockVirtualMachine(resourceId); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_VM_START, "Test event", resourceId, resourceType); @@
Original Test Code (click to expand)
@Test public void testNestedEvent() { CallContext.register(user, account); final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(resourceId); Mockito.when(entityMgr.findByUuidIncludingRemoved(VirtualMachine.class, resourceUuid)).thenReturn(vm); CallContext.current().putContextParameter(VirtualMachine.class, resourceUuid); ActionEventUtils.startNestedActionEvent(EventTypes.EVENT_VM_START, "Test event", resourceId, resourceType); Assert.assertEquals(persistedEvents.size(), 1); EventVO eventVO = persistedEvents.get(0); Assert.assertEquals(eventVO.getState(), com.cloud.event.Event.State.Started); CallContext.unregister(); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine(Long idReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getId()).thenReturn(idReturn); return vm; }

Mock Clone Instance #cloudstack_MCI_182

Reusable Method

private static VirtualMachine createMockVirtualMachine(String uuidReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getUuid()).thenReturn(uuidReturn); return vm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_182_1

Test Case Name: testPublishedEventResource(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\event\ActionEventUtilsTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - Mockito.when(vm.getUuid()).thenReturn(resourceUuid); + VirtualMachine vm = createMockVirtualMachine(resourceUuid); Mockito.when(entityMgr.validEntityType(VirtualMachine.class)).thenReturn(true); Mockito.when(entityMgr.findByIdIncludingRemoved(VirtualMachine.class, resourceId)).thenReturn(vm); ActionEventUtils.onActionEvent(USER_ID, ACCOUNT_ID, account.getDomainId(), EventTypes.EVENT_VM_START, "Test event", resourceId, resourceType); checkEventResourceAndUnregisterContext(resourceId, resourceUuid, resourceType); @@
Original Test Code (click to expand)
@Test public void testPublishedEventResource() { CallContext.register(user, account); final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getUuid()).thenReturn(resourceUuid); Mockito.when(entityMgr.validEntityType(VirtualMachine.class)).thenReturn(true); Mockito.when(entityMgr.findByIdIncludingRemoved(VirtualMachine.class, resourceId)).thenReturn(vm); ActionEventUtils.onActionEvent(USER_ID, ACCOUNT_ID, account.getDomainId(), EventTypes.EVENT_VM_START, "Test event", resourceId, resourceType); checkEventResourceAndUnregisterContext(resourceId, resourceUuid, resourceType); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine(String uuidReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getUuid()).thenReturn(uuidReturn); return vm; }

Test Case ID #cloudstack_Test_182_2

Test Case Name: testVmSnapshotEventResource(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\event\ActionEventUtilsTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ Mockito.when(vmSnapshot.getVmId()).thenReturn(resourceId); - VirtualMachine vm = Mockito.mock(VirtualMachine.class); - Mockito.when(vm.getUuid()).thenReturn(resourceUuid); + VirtualMachine vm = createMockVirtualMachine(resourceUuid); Mockito.when(entityMgr.validEntityType(VMSnapshot.class)).thenReturn(true); @@
Original Test Code (click to expand)
@Test public void testVmSnapshotEventResource() { CallContext.register(user, account); final Long vmSnapshotResourceId = 100L; final String vmSnapshotResourceType = ApiCommandResourceType.VmSnapshot.toString(); final String vmSnapshotResourceUuid = UUID.randomUUID().toString(); final Long resourceId = 1L; final String resourceType = ApiCommandResourceType.VirtualMachine.toString(); final String resourceUuid = UUID.randomUUID().toString(); VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); Mockito.when(vmSnapshot.getUuid()).thenReturn(vmSnapshotResourceUuid); Mockito.when(vmSnapshot.getVmId()).thenReturn(resourceId); VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getUuid()).thenReturn(resourceUuid); Mockito.when(entityMgr.validEntityType(VMSnapshot.class)).thenReturn(true); Mockito.when(entityMgr.validEntityType(VirtualMachine.class)).thenReturn(true); Mockito.when(entityMgr.findByIdIncludingRemoved(VMSnapshot.class, vmSnapshotResourceId)).thenReturn(vmSnapshot); Mockito.when(entityMgr.findByIdIncludingRemoved(VirtualMachine.class, resourceId)).thenReturn(vm); ActionEventUtils.onActionEvent(USER_ID, ACCOUNT_ID, account.getDomainId(), EventTypes.EVENT_VM_SNAPSHOT_CREATE, "Test event", vmSnapshotResourceId, vmSnapshotResourceType); checkEventResourceAndUnregisterContext(resourceId, resourceUuid, resourceType); }
Reusable Method for MCI (click to expand)
private static VirtualMachine createMockVirtualMachine(String uuidReturn) { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Mockito.when(vm.getUuid()).thenReturn(uuidReturn); return vm; }

Mock Clone Instance #cloudstack_MCI_183

Reusable Method

// === Declare in class scope === private VirtualMachineProfile vmProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vmProfile = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === vmProfile;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_183_1

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
@@ when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); - final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); + // removed local mock; replaced with global field `vmProfile` final DeployDestination dest = mock(DeployDestination.class);
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineProfile vmProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vmProfile = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === vmProfile;

Test Case ID #cloudstack_Test_183_2

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
@@ when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); - final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); + // removed local mock; replaced with global field `vmProfile` final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class);
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineProfile vmProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vmProfile = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === vmProfile;

Test Case ID #cloudstack_Test_183_3

Test Case Name: testDeallocate(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
@@ when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); - final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); + // removed local mock; replaced with global field `vmProfile` final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost);
Original Test Code (click to expand)
@Test public void testDeallocate() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.deallocate(network, nic, vmProfile); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineProfile vmProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vmProfile = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === vmProfile;

Test Case ID #cloudstack_Test_183_4

Test Case Name: testDeallocateFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
@@ when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); - final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); + // removed local mock; replaced with global field `vmProfile` final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost);
Original Test Code (click to expand)
@Test public void testDeallocateFail() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DisassociateMacFromNetworkAnswer answer = mock(DisassociateMacFromNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.deallocate(network, nic, vmProfile); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineProfile vmProfile; // === Add to @BeforeEach method === @BeforeEach public void setUp() { vmProfile = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === vmProfile;

Mock Clone Instance #cloudstack_MCI_184

Reusable Method

private static VirtualMachineProfile createMockVirtualMachineProfile(String hostName, VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn(hostName); when(vm.getType()).thenReturn(type); return vm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_184_1

Test Case Name: testUpperCaseCharactersAreNotAllowed(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\globodns\src\test\java\com\globo\globodns\cloudstack\element\GloboDnsElementTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ NicProfile nic = new NicProfile(); - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - when(vm.getHostName()).thenReturn("UPPERCASENAME"); - when(vm.getType()).thenReturn(VirtualMachine.Type.User); + VirtualMachineProfile vm = createMockVirtualMachineProfile("UPPERCASENAME", VirtualMachine.Type.User); when(_datacenterDao.findById(zoneId)).thenReturn(mock(DataCenterVO.class)); DeployDestination dest = new DeployDestination(); ReservationContext context = new ReservationContextImpl(null, null, user); _globodnsElement.prepare(network, nic, vm, dest, context); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testUpperCaseCharactersAreNotAllowed() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(zoneId); when(network.getId()).thenReturn(1l); NicProfile nic = new NicProfile(); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("UPPERCASENAME"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(_datacenterDao.findById(zoneId)).thenReturn(mock(DataCenterVO.class)); DeployDestination dest = new DeployDestination(); ReservationContext context = new ReservationContextImpl(null, null, user); _globodnsElement.prepare(network, nic, vm, dest, context); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(String hostName, VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn(hostName); when(vm.getType()).thenReturn(type); return vm; }

Test Case ID #cloudstack_Test_184_2

Test Case Name: testPrepareMethodCallGloboDnsToRegisterHostName(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\globodns\src\test\java\com\globo\globodns\cloudstack\element\GloboDnsElementTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ NicProfile nic = new NicProfile(); nic.setIPv4Address("10.11.12.13"); - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - when(vm.getHostName()).thenReturn("vm-name"); - when(vm.getType()).thenReturn(VirtualMachine.Type.User); + VirtualMachineProfile vm = createMockVirtualMachineProfile("vm-name", VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); when(_datacenterDao.findById(zoneId)).thenReturn(dataCenterVO); @@
Original Test Code (click to expand)
@Test public void testPrepareMethodCallGloboDnsToRegisterHostName() throws Exception { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(zoneId); when(network.getId()).thenReturn(1l); NicProfile nic = new NicProfile(); nic.setIPv4Address("10.11.12.13"); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("vm-name"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); when(_datacenterDao.findById(zoneId)).thenReturn(dataCenterVO); DeployDestination dest = new DeployDestination(); ReservationContext context = new ReservationContextImpl(null, null, user); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(globoDnsHostId); when(_hostDao.findByTypeNameAndZoneId(eq(zoneId), eq(Provider.GloboDns.getName()), eq(Type.L2Networking))).thenReturn(hostVO); when(_agentMgr.easySend(eq(globoDnsHostId), isA(CreateOrUpdateRecordAndReverseCommand.class))).then(new org.mockito.stubbing.Answer<Answer>() { @Override public Answer answer(InvocationOnMock invocation) throws Throwable { Command cmd = (Command) invocation.getArguments()[1]; return new Answer(cmd); } }); _globodnsElement.prepare(network, nic, vm, dest, context); verify(_agentMgr, times(1)).easySend(eq(globoDnsHostId), isA(CreateOrUpdateRecordAndReverseCommand.class)); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(String hostName, VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn(hostName); when(vm.getType()).thenReturn(type); return vm; }

Test Case ID #cloudstack_Test_184_3

Test Case Name: testReleaseMethodCallResource(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\globodns\src\test\java\com\globo\globodns\cloudstack\element\GloboDnsElementTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ nic.setIPv4Address("10.11.12.13"); - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); - when(vm.getHostName()).thenReturn("vm-name"); - when(vm.getType()).thenReturn(VirtualMachine.Type.User); + VirtualMachineProfile vm = createMockVirtualMachineProfile("vm-name", VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); @@
Original Test Code (click to expand)
@Test public void testReleaseMethodCallResource() throws Exception { Network network = mock(Network.class); when(network.getDataCenterId()).thenReturn(zoneId); when(network.getId()).thenReturn(1l); NicProfile nic = new NicProfile(); nic.setIPv4Address("10.11.12.13"); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn("vm-name"); when(vm.getType()).thenReturn(VirtualMachine.Type.User); DataCenterVO dataCenterVO = mock(DataCenterVO.class); when(dataCenterVO.getId()).thenReturn(zoneId); when(_datacenterDao.findById(zoneId)).thenReturn(dataCenterVO); ReservationContext context = new ReservationContextImpl(null, null, user); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(globoDnsHostId); when(_hostDao.findByTypeNameAndZoneId(eq(zoneId), eq(Provider.GloboDns.getName()), eq(Type.L2Networking))).thenReturn(hostVO); when(_agentMgr.easySend(eq(globoDnsHostId), isA(RemoveRecordCommand.class))).then(new org.mockito.stubbing.Answer<Answer>() { @Override public Answer answer(InvocationOnMock invocation) throws Throwable { Command cmd = (Command) invocation.getArguments()[1]; return new Answer(cmd); } }); _globodnsElement.release(network, nic, vm, context); verify(_agentMgr, times(1)).easySend(eq(globoDnsHostId), isA(RemoveRecordCommand.class)); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(String hostName, VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getHostName()).thenReturn(hostName); when(vm.getType()).thenReturn(type); return vm; }

Mock Clone Instance #cloudstack_MCI_185

Reusable Method

public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_185_1

Test Case Name: preparePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); - VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); - when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); + VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); @@
Original Test Code (click to expand)
@Test public void preparePublicNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer createTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(createTungstenNetworkPolicyAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(createTungstenVMAnswer.getResult()).thenReturn(true); when(createTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_2

Test Case Name: prepareManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
--- original +++ refactored @@ NicProfile nicProfile = new NicProfile(); - VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); - when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); + VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); @@
Original Test Code (click to expand)
@Test public void prepareManagementNetworkTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(createTungstenVMAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext)); assertEquals(Nic.ReservationStrategy.Create, nicProfile.getReservationStrategy()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN, nicProfile.getBroadcastType()); assertEquals(Networks.BroadcastDomainType.TUNGSTEN.toUri("tf"), nicProfile.getBroadCastUri()); assertEquals(TungstenUtils.DEFAULT_VHOST_INTERFACE, nicProfile.getName()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_3

Test Case Name: prepareWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
--- original +++ refactored @@ NicProfile nicProfile = new NicProfile(); - VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); + VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void prepareWithExceptionTest() throws ConcurrentOperationException { Network network = mock(Network.class); NicProfile nicProfile = new NicProfile(); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); DeployDestination deployDestination = mock(DeployDestination.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer createTungstenVMAnswer = mock(TungstenAnswer.class); nicProfile.setIPv4Address("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(createTungstenVMAnswer); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); tungstenElement.prepare(network, nicProfile, virtualMachineProfile, deployDestination, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_4

Test Case Name: releasePublicNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
--- original +++ refactored @@ NicProfile nicProfile = mock(NicProfile.class); - VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); + VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); - when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); @@
Original Test Code (click to expand)
@Test public void releasePublicNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteTungstenNetworkPolicyAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(ipAddressDao.findByIpAndDcId(anyLong(), anyString())).thenReturn(ipAddressVO); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenNetworkPolicyCommand.class), anyLong())).thenReturn(deleteTungstenNetworkPolicyAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); when(deleteTungstenNetworkPolicyAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_5

Test Case Name: releaseManagementNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
--- original +++ refactored @@ NicProfile nicProfile = mock(NicProfile.class); - VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); + VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.SecondaryStorageVm); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); - when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); @@
Original Test Code (click to expand)
@Test public void releaseManagementNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenReturn(deleteVmAnswer); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); when(deleteVmAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_6

Test Case Name: releaseWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
--- original +++ refactored @@ NicProfile nicProfile = mock(NicProfile.class); - VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); - when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); + VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void releaseWithExceptionTest() throws ConcurrentOperationException, ResourceUnavailableException { Network network = mock(Network.class); NicProfile nicProfile = mock(NicProfile.class); VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); ReservationContext reservationContext = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO host = mock(HostVO.class); TungstenAnswer deleteTungstenVRouterPortAnswer = mock(TungstenAnswer.class); TungstenAnswer deleteVmiAnswer = mock(TungstenAnswer.class); when(nicProfile.getIPv4Address()).thenReturn("192.168.100.100"); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Management); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.SecondaryStorageVm); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(deleteTungstenVRouterPortAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong())).thenReturn(deleteVmiAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(IllegalArgumentException.class); when(deleteTungstenVRouterPortAnswer.getResult()).thenReturn(true); when(deleteVmiAnswer.getResult()).thenReturn(true); tungstenElement.release(network, nicProfile, virtualMachineProfile, reservationContext); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_7

Test Case Name: prepareMigrationTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + VirtualMachineProfile vm = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.ConsoleProxy); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); - when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); @@
Original Test Code (click to expand)
@Test public void prepareMigrationTest() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); DeployDestination dest = mock(DeployDestination.class); ReservationContext context = mock(ReservationContext.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); HostVO hostVO = mock(HostVO.class); TungstenAnswer tungstenAnswer = mock(TungstenAnswer.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Public); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(tungstenAnswer); when(tungstenAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.prepareMigration(nic, network, vm, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_8

Test Case Name: rollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ Network network = mock(Network.class); - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + VirtualMachineProfile vm = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.ConsoleProxy); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); - when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void rollbackMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.rollbackMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_9

Test Case Name: commitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + VirtualMachineProfile vm = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.ConsoleProxy); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); - when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void commitMigration() { NicProfile nic = mock(NicProfile.class); Network network = mock(Network.class); VirtualMachineProfile vm = mock(VirtualMachineProfile.class); ReservationContext src = mock(ReservationContext.class); ReservationContext dest = mock(ReservationContext.class); VirtualMachine virtualMachine = mock(VirtualMachine.class); HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.ConsoleProxy); when(vm.getVirtualMachine()).thenReturn(virtualMachine); when(hostDao.findById(anyLong())).thenReturn(hostVO); tungstenElement.commitMigration(nic, network, vm, src, dest); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_10

Test Case Name: testDeallocate(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
--- original +++ refactored @@ final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); - final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(network.getDataCenterId()).thenReturn(1L); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); - when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); + final VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.User); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); guru.deallocate(network, nicProfile, virtualMachineProfile); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testDeallocate() { final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(network.getDataCenterId()).thenReturn(1L); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); guru.deallocate(network, nicProfile, virtualMachineProfile); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong()); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVmInterfaceCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_11

Test Case Name: testDeallocateWithException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: virtualMachineProfile

Suggested Diff
@@ final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); - final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(new IllegalArgumentException()); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); - when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); + VirtualMachineProfile virtualMachineProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.User); guru.deallocate(network, nicProfile, virtualMachineProfile); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testDeallocateWithException() { final Network network = mock(Network.class); final NicProfile nicProfile = mock(NicProfile.class); final VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); final NicVO nicVO = mock(NicVO.class); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVmCommand.class), anyLong())).thenThrow(new IllegalArgumentException()); when(nicDao.listByVmId(anyLong())).thenReturn(List.of(nicVO)); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(virtualMachineProfile.getType()).thenReturn(VirtualMachine.Type.User); guru.deallocate(network, nicProfile, virtualMachineProfile); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_12

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); - final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); + final VirtualMachineProfile vm = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(nic.getReservationStrategy()).thenReturn(Nic.ReservationStrategy.Start); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(host); guru.reserve(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_13

Test Case Name: testRelease(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final NicProfile nic = mock(NicProfile.class); - final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + final VirtualMachineProfile vm = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.User); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); - when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(hostDao.findById(anyLong())).thenReturn(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); guru.release(nic, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testRelease() { final NicProfile nic = mock(NicProfile.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final IPAddressVO ipAddressVO = mock(IPAddressVO.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO host = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(hostDao.findById(anyLong())).thenReturn(host); when(ipAddressDao.findByAssociatedVmId(anyLong())).thenReturn(ipAddressVO); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(new NetworkVO()); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(tungstenFabricUtils.sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); guru.release(nic, vm, "test"); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_14

Test Case Name: testPrepareMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); - final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); - when(vm.getType()).thenReturn(VirtualMachine.Type.User); + final VirtualMachineProfile vm = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testPrepareMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vm = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final ReservationContext context = mock(ReservationContext.class); final VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); final HostVO hostVO = mock(HostVO.class); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(vmInstanceDao.findById(anyLong())).thenReturn(vmInstanceVO); when(hostDao.findById(anyLong())).thenReturn(hostVO); when(tungstenFabricUtils.sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong())).thenReturn(new TungstenAnswer(new TungstenCommand(), true, "")); guru.prepareMigration(nic, network, vm, dest, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(CreateTungstenVirtualMachineCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_15

Test Case Name: testRollbackMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
--- original +++ refactored @@ final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); - final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); + final VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testRollbackMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.rollbackMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Test Case ID #cloudstack_Test_185_16

Test Case Name: testCommitMigration(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenGuestNetworkGuruTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
@@ final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); - final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); + final VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(VirtualMachine.Type.User); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); - when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); @@
Original Test Code (click to expand)
@Test public void testCommitMigration() { final NicProfile nic = mock(NicProfile.class); final Network network = mock(Network.class); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final ReservationContext context = mock(ReservationContext.class); final VirtualMachine vm = mock(VirtualMachine.class); final HostVO hostVO = mock(HostVO.class); when(vmProfile.getType()).thenReturn(VirtualMachine.Type.User); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(hostDao.findById(anyLong())).thenReturn(hostVO); guru.commitMigration(nic, network, vmProfile, context, context); verify(tungstenFabricUtils, times(1)).sendTungstenCommand(any(DeleteTungstenVRouterPortCommand.class), anyLong()); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile virtualMachineProfile = mock(VirtualMachineProfile.class); when(virtualMachineProfile.getType()).thenReturn(type); return virtualMachineProfile; } }

Mock Clone Instance #cloudstack_MCI_186

Reusable Method

private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); return profile; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_186_1

Test Case Name: testSendStopWithOkAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: profile

Suggested Diff
@@ VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); - VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "ok", true); - when(profile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile profile = createMockVirtualMachineProfile(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); Assert.assertTrue(actual); }
Original Test Code (click to expand)
@Test public void testSendStopWithOkAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "ok", true); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); Assert.assertTrue(actual); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); return profile; }

Test Case ID #cloudstack_Test_186_2

Test Case Name: testSendStopWithFailAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: profile

Suggested Diff
--- original +++ refactored @@ VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); - VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "fail", false); - when(profile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile profile = createMockVirtualMachineProfile(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); @@
Original Test Code (click to expand)
@Test public void testSendStopWithFailAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); StopAnswer answer = new StopAnswer(new StopCommand(vm, false, false), "fail", false); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(answer); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); return profile; }

Test Case ID #cloudstack_Test_186_3

Test Case Name: testSendStopWithNullAnswer(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: profile

Suggested Diff
@@ VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); - VirtualMachineProfile profile = mock(VirtualMachineProfile.class); - when(profile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile profile = createMockVirtualMachineProfile(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(null); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); } @@
Original Test Code (click to expand)
@Test public void testSendStopWithNullAnswer() throws Exception { VirtualMachineGuru guru = mock(VirtualMachineGuru.class); VirtualMachine vm = mock(VirtualMachine.class); VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); when(vm.getHostId()).thenReturn(1L); when(agentManagerMock.send(anyLong(), (Command) any())).thenReturn(null); boolean actual = virtualMachineManagerImpl.sendStop(guru, profile, false, false); assertFalse(actual); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile profile = mock(VirtualMachineProfile.class); when(profile.getVirtualMachine()).thenReturn(vm); return profile; }

Mock Clone Instance #cloudstack_MCI_187

Reusable Method

private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getType()).thenReturn(type); return vm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_187_1

Test Case Name: testRemoveDhcpServiceWithNic(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ // make local mocks - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + VirtualMachineProfile vm = createMockVirtualMachineProfile(Type.User); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); // make sure that release dhcp will be called - when(vm.getType()).thenReturn(Type.User); when(testOrchastrator._networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp)).thenReturn(true); when(network.getTrafficType()).thenReturn(TrafficType.Guest); when(network.getGuestType()).thenReturn(GuestType.Shared); when(testOrchastrator._nicDao.listByNetworkIdTypeAndGatewayAndBroadcastUri(nic.getNetworkId(), VirtualMachine.Type.User, nic.getIPv4Gateway(), nic.getBroadcastUri())).thenReturn(new ArrayList<NicVO>()); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); testOrchastrator.removeNic(vm, nic); verify(nic, times(1)).setState(Nic.State.Deallocating); verify(testOrchastrator._networkModel, times(2)).getElementImplementingProvider(dhcpProvider); verify(testOrchastrator._ntwkSrvcDao, times(2)).getProviderForServiceInNetwork(network.getId(), Service.Dhcp); verify(testOrchastrator._networksDao, times(2)).findById(nic.getNetworkId()); @@
Original Test Code (click to expand)
@Test public void testRemoveDhcpServiceWithNic() { // make local mocks VirtualMachineProfile vm = mock(VirtualMachineProfile.class); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); // make sure that release dhcp will be called when(vm.getType()).thenReturn(Type.User); when(testOrchastrator._networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp)).thenReturn(true); when(network.getTrafficType()).thenReturn(TrafficType.Guest); when(network.getGuestType()).thenReturn(GuestType.Shared); when(testOrchastrator._nicDao.listByNetworkIdTypeAndGatewayAndBroadcastUri(nic.getNetworkId(), VirtualMachine.Type.User, nic.getIPv4Gateway(), nic.getBroadcastUri())).thenReturn(new ArrayList<NicVO>()); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); testOrchastrator.removeNic(vm, nic); verify(nic, times(1)).setState(Nic.State.Deallocating); verify(testOrchastrator._networkModel, times(2)).getElementImplementingProvider(dhcpProvider); verify(testOrchastrator._ntwkSrvcDao, times(2)).getProviderForServiceInNetwork(network.getId(), Service.Dhcp); verify(testOrchastrator._networksDao, times(2)).findById(nic.getNetworkId()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getType()).thenReturn(type); return vm; }

Test Case ID #cloudstack_Test_187_2

Test Case Name: testDontRemoveDhcpServiceFromDomainRouter(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ // make local mocks - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + VirtualMachineProfile vm = createMockVirtualMachineProfile(Type.DomainRouter); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); // make sure that release dhcp won't be called - when(vm.getType()).thenReturn(Type.DomainRouter); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); testOrchastrator.removeNic(vm, nic); verify(nic, times(1)).setState(Nic.State.Deallocating); verify(testOrchastrator._networkModel, never()).getElementImplementingProvider(dhcpProvider); verify(testOrchastrator._ntwkSrvcDao, never()).getProviderForServiceInNetwork(network.getId(), Service.Dhcp); verify(testOrchastrator._networksDao, times(1)).findById(nic.getNetworkId()); @@
Original Test Code (click to expand)
@Test public void testDontRemoveDhcpServiceFromDomainRouter() { // make local mocks VirtualMachineProfile vm = mock(VirtualMachineProfile.class); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); // make sure that release dhcp won't be called when(vm.getType()).thenReturn(Type.DomainRouter); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); testOrchastrator.removeNic(vm, nic); verify(nic, times(1)).setState(Nic.State.Deallocating); verify(testOrchastrator._networkModel, never()).getElementImplementingProvider(dhcpProvider); verify(testOrchastrator._ntwkSrvcDao, never()).getProviderForServiceInNetwork(network.getId(), Service.Dhcp); verify(testOrchastrator._networksDao, times(1)).findById(nic.getNetworkId()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getType()).thenReturn(type); return vm; }

Test Case ID #cloudstack_Test_187_3

Test Case Name: testDontRemoveDhcpServiceWhenNotProvided(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ // make local mocks - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + VirtualMachineProfile vm = createMockVirtualMachineProfile(Type.User); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); // make sure that release dhcp will *not* be called - when(vm.getType()).thenReturn(Type.User); when(testOrchastrator._networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp)).thenReturn(false); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); testOrchastrator.removeNic(vm, nic); verify(nic, times(1)).setState(Nic.State.Deallocating); verify(testOrchastrator._networkModel, never()).getElementImplementingProvider(dhcpProvider); verify(testOrchastrator._ntwkSrvcDao, never()).getProviderForServiceInNetwork(network.getId(), Service.Dhcp); verify(testOrchastrator._networksDao, times(1)).findById(nic.getNetworkId()); @@
Original Test Code (click to expand)
@Test public void testDontRemoveDhcpServiceWhenNotProvided() { // make local mocks VirtualMachineProfile vm = mock(VirtualMachineProfile.class); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); // make sure that release dhcp will *not* be called when(vm.getType()).thenReturn(Type.User); when(testOrchastrator._networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp)).thenReturn(false); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); testOrchastrator.removeNic(vm, nic); verify(nic, times(1)).setState(Nic.State.Deallocating); verify(testOrchastrator._networkModel, never()).getElementImplementingProvider(dhcpProvider); verify(testOrchastrator._ntwkSrvcDao, never()).getProviderForServiceInNetwork(network.getId(), Service.Dhcp); verify(testOrchastrator._networksDao, times(1)).findById(nic.getNetworkId()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getType()).thenReturn(type); return vm; }

Test Case ID #cloudstack_Test_187_4

Test Case Name: testDontReleaseNicWhenPreserveNicsSettingEnabled(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\org\apache\cloudstack\engine\orchestration\NetworkOrchestratorTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ @Test public void testDontReleaseNicWhenPreserveNicsSettingEnabled() { - VirtualMachineProfile vm = mock(VirtualMachineProfile.class); + VirtualMachineProfile vm = createMockVirtualMachineProfile(Type.User); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); - when(vm.getType()).thenReturn(Type.User); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); Long nicId = 1L; when(nic.getId()).thenReturn(nicId); when(vm.getParameter(VirtualMachineProfile.Param.PreserveNics)).thenReturn(true); testOrchastrator.removeNic(vm, nic); verify(nic, never()).setState(Nic.State.Deallocating); verify(testOrchastrator._nicDao, never()).remove(nicId); @@
Original Test Code (click to expand)
@Test public void testDontReleaseNicWhenPreserveNicsSettingEnabled() { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); NicVO nic = mock(NicVO.class); NetworkVO network = mock(NetworkVO.class); when(vm.getType()).thenReturn(Type.User); when(network.getGuruName()).thenReturn(guruName); when(testOrchastrator._networksDao.findById(nic.getNetworkId())).thenReturn(network); Long nicId = 1L; when(nic.getId()).thenReturn(nicId); when(vm.getParameter(VirtualMachineProfile.Param.PreserveNics)).thenReturn(true); testOrchastrator.removeNic(vm, nic); verify(nic, never()).setState(Nic.State.Deallocating); verify(testOrchastrator._nicDao, never()).remove(nicId); }
Reusable Method for MCI (click to expand)
private static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine.Type type) { VirtualMachineProfile vm = mock(VirtualMachineProfile.class); when(vm.getType()).thenReturn(type); return vm; }

Mock Clone Instance #cloudstack_MCI_188

Reusable Method

// === Declare in class scope === private VirtualMachineProfile profileMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileMock = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === profileMock

The refactoring details in each test cases


Test Case ID #cloudstack_Test_188_1

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNull(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: profileMock

Suggested Diff
@@ @Test public void testFinalizeStartWhenCmdsAnswerIsNull() throws Exception { - VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); + // removed local mock; replaced with global field `profileMock` long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(null); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNull() throws Exception { VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(null); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineProfile profileMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileMock = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === profileMock

Test Case ID #cloudstack_Test_188_2

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNotNullButAnswerResultIsFalse(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: profileMock

Suggested Diff
@@ @Test public void testFinalizeStartWhenCmdsAnswerIsNotNullButAnswerResultIsFalse() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(false); - VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); + // removed local mock; replaced with global field `profileMock` long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNotNullButAnswerResultIsFalse() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(false); VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = false; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineProfile profileMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileMock = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === profileMock

Test Case ID #cloudstack_Test_188_3

Test Case Name: testFinalizeStartWhenCmdsAnswerIsNotNullAndAnswerResultIsTrue(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\elastic-loadbalancer\src\test\java\com\cloud\network\lb\ElasticLoadBalancerManagerImplTest.java)

Mock Object Variable Name: profileMock

Suggested Diff
@@ @Test public void testFinalizeStartWhenCmdsAnswerIsNotNullAndAnswerResultIsTrue() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(true); - VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); + // removed local mock; replaced with global field `profileMock` long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = true; - boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); + boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Original Test Code (click to expand)
@Test public void testFinalizeStartWhenCmdsAnswerIsNotNullAndAnswerResultIsTrue() throws Exception { CheckSshAnswer answerMock = mock(CheckSshAnswer.class); when(answerMock.getResult()).thenReturn(true); VirtualMachineProfile profileMock = mock(VirtualMachineProfile.class); long hostId = 1L; Commands cmds = mock(Commands.class); when(cmds.getAnswer("checkSsh")).thenReturn(answerMock); ReservationContext context = mock(ReservationContext.class); boolean expected = true; boolean actual = elasticLoadBalancerManagerImpl.finalizeStart(profileMock, hostId, cmds, context); assertEquals(expected, actual); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineProfile profileMock; // === Add to @BeforeEach method === @BeforeEach public void setUp() { profileMock = mock(VirtualMachineProfile.class); } // === Replace local variable in test with === profileMock

Mock Clone Instance #cloudstack_MCI_189

Reusable Method

public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); return vmProfile; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_189_1

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
--- original +++ refactored @@ VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); - VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); - when(vmProfile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); return vmProfile; } }

Test Case ID #cloudstack_Test_189_2

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
--- original +++ refactored @@ VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); - VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); - when(vmProfile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); @@
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.LOWER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); return vmProfile; } }

Test Case ID #cloudstack_Test_189_3

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAffinityProcessorTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
--- original +++ refactored @@ when(vm.getId()).thenReturn(vmId); - VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); - when(vmProfile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); return vmProfile; } }

Test Case ID #cloudstack_Test_189_4

Test Case Name: testProcessWithEmptyPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
--- original +++ refactored @@ VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); - VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); - when(vmProfile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); @@
Original Test Code (click to expand)
@Test public void testProcessWithEmptyPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); return vmProfile; } }

Test Case ID #cloudstack_Test_189_5

Test Case Name: testProcessWithPlan(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
--- original +++ refactored @@ VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); - VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); - when(vmProfile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); @@
Original Test Code (click to expand)
@Test public void testProcessWithPlan() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); plan.adjustHostPriority(host2Id, DeploymentPlan.HostPriorityAdjustment.DEFAULT); plan.adjustHostPriority(host3Id, DeploymentPlan.HostPriorityAdjustment.HIGHER); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id, vm3Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = new VMInstanceVO(); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); vm2.setHostId(host2Id); VMInstanceVO vm3 = new VMInstanceVO(); when(vmInstanceDao.findById(vm3Id)).thenReturn(vm3); vm3.setHostId(host3Id); processor.process(vmProfile, plan, avoid); Assert.assertEquals(2, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); Assert.assertNotNull(plan.getHostPriorities().get(host3Id)); Assert.assertEquals(Integer.valueOf(0), plan.getHostPriorities().get(host3Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); return vmProfile; } }

Test Case ID #cloudstack_Test_189_6

Test Case Name: testProcessWithNotRunningVM(File: C:\Java_projects\Apache\cloudstack\plugins\affinity-group-processors\non-strict-host-anti-affinity\src\test\java\org\apache\cloudstack\affinity\NonStrictHostAntiAffinityProcessorTest.java)

Mock Object Variable Name: vmProfile

Suggested Diff
--- original +++ refactored @@ when(vm.getId()).thenReturn(vmId); - VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); - when(vmProfile.getVirtualMachine()).thenReturn(vm); + VirtualMachineProfile vmProfile = MockVirtualMachineProfile.createMockVirtualMachineProfile(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); @@
Original Test Code (click to expand)
@Test public void testProcessWithNotRunningVM() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); when(vm.getId()).thenReturn(vmId); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); List<AffinityGroupVMMapVO> vmGroupMappings = new ArrayList<>(); vmGroupMappings.add(new AffinityGroupVMMapVO(affinityGroupId, vmId)); when(_affinityGroupVMMapDao.findByVmIdType(eq(vmId), nullable(String.class))).thenReturn(vmGroupMappings); DataCenterDeployment plan = new DataCenterDeployment(zoneId); ExcludeList avoid = new ExcludeList(); AffinityGroupVO affinityGroupVO = Mockito.mock(AffinityGroupVO.class); when(affinityGroupDao.findById(affinityGroupId)).thenReturn(affinityGroupVO); when(affinityGroupVO.getId()).thenReturn(affinityGroupId); List<Long> groupVMIds = new ArrayList<>(Arrays.asList(vmId, vm2Id)); when(_affinityGroupVMMapDao.listVmIdsByAffinityGroup(affinityGroupId)).thenReturn(groupVMIds); VMInstanceVO vm2 = Mockito.mock(VMInstanceVO.class); when(vmInstanceDao.findById(vm2Id)).thenReturn(vm2); when(vm2.getHostId()).thenReturn(null); when(vm2.getLastHostId()).thenReturn(host2Id); when(vm2.getState()).thenReturn(VirtualMachine.State.Starting); when(vm2.getUpdateTime()).thenReturn(new Date()); ReflectionTestUtils.setField(processor, "vmCapacityReleaseInterval", 3600); processor.process(vmProfile, plan, avoid); Assert.assertEquals(1, plan.getHostPriorities().size()); Assert.assertNotNull(plan.getHostPriorities().get(host2Id)); Assert.assertEquals(Integer.valueOf(-1), plan.getHostPriorities().get(host2Id)); }
Reusable Method for MCI (click to expand)
public class MockVirtualMachineProfile { public static VirtualMachineProfile createMockVirtualMachineProfile(VirtualMachine vm) { VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); when(vmProfile.getVirtualMachine()).thenReturn(vm); return vmProfile; } }

Mock Clone Instance #cloudstack_MCI_190

Reusable Method

private static VmStatsVO createMockVmStatsVo(String vmStatsDataReturn) { VmStatsVO vmStatsVo = Mockito.mock(VmStatsVO.class); Mockito.doReturn(vmStatsDataReturn).when(vmStatsVo).getVmStatsData(); return vmStatsVo; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_190_1

Test Case Name: accumulateVmMetricsStatsTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\StatsCollectorTest.java)

Mock Object Variable Name: vmStatsVoMock1

Suggested Diff
@@ String fakeStatsData1 = "{\"vmId\":1,\"cpuUtilization\":1.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; String fakeStatsData2 = "{\"vmId\":1,\"cpuUtilization\":10.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; - Mockito.doReturn(fakeStatsData1).when(vmStatsVoMock1).getVmStatsData(); + vmStatsVoMock1 = createMockVmStatsVo(fakeStatsData1); Mockito.doReturn(fakeStatsData2).when(vmStatsVoMock2).getVmStatsData(); VmStatsEntry result = statsCollector.accumulateVmMetricsStats(new ArrayList<VmStatsVO>(Arrays.asList(vmStatsVoMock1, vmStatsVoMock2)));
Original Test Code (click to expand)
@Test public void accumulateVmMetricsStatsTest() { String fakeStatsData1 = "{\"vmId\":1,\"cpuUtilization\":1.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; String fakeStatsData2 = "{\"vmId\":1,\"cpuUtilization\":10.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; Mockito.doReturn(fakeStatsData1).when(vmStatsVoMock1).getVmStatsData(); Mockito.doReturn(fakeStatsData2).when(vmStatsVoMock2).getVmStatsData(); VmStatsEntry result = statsCollector.accumulateVmMetricsStats(new ArrayList<VmStatsVO>(Arrays.asList(vmStatsVoMock1, vmStatsVoMock2))); Assert.assertEquals("vm", result.getEntityType()); Assert.assertEquals(1, result.getVmId()); Assert.assertEquals(1.0, result.getCPUUtilization(), 0); Assert.assertEquals(1, result.getNumCPUs()); Assert.assertEquals(1.0, result.getMemoryKBs(), 0); Assert.assertEquals(1.0, result.getIntFreeMemoryKBs(), 0); Assert.assertEquals(1.0, result.getTargetMemoryKBs(), 0); Assert.assertEquals(2.0, result.getNetworkReadKBs(), 0); Assert.assertEquals(2.2, result.getNetworkWriteKBs(), 0); Assert.assertEquals(4.0, result.getDiskReadKBs(), 0); Assert.assertEquals(4.2, result.getDiskWriteKBs(), 0); Assert.assertEquals(6.0, result.getDiskReadIOs(), 0); Assert.assertEquals(6.2, result.getDiskWriteIOs(), 0); }
Reusable Method for MCI (click to expand)
private static VmStatsVO createMockVmStatsVo(String vmStatsDataReturn) { VmStatsVO vmStatsVo = Mockito.mock(VmStatsVO.class); Mockito.doReturn(vmStatsDataReturn).when(vmStatsVo).getVmStatsData(); return vmStatsVo; }

Test Case ID #cloudstack_Test_190_2

Test Case Name: accumulateVmMetricsStatsTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\StatsCollectorTest.java)

Mock Object Variable Name: vmStatsVoMock2

Suggested Diff
@@ String fakeStatsData1 = "{\"vmId\":1,\"cpuUtilization\":1.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; String fakeStatsData2 = "{\"vmId\":1,\"cpuUtilization\":10.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; Mockito.doReturn(fakeStatsData1).when(vmStatsVoMock1).getVmStatsData(); - Mockito.doReturn(fakeStatsData2).when(vmStatsVoMock2).getVmStatsData(); + vmStatsVoMock2 = createMockVmStatsVo(fakeStatsData2); VmStatsEntry result = statsCollector.accumulateVmMetricsStats(new ArrayList<VmStatsVO>(Arrays.asList(vmStatsVoMock1, vmStatsVoMock2)));
Original Test Code (click to expand)
@Test public void accumulateVmMetricsStatsTest() { String fakeStatsData1 = "{\"vmId\":1,\"cpuUtilization\":1.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; String fakeStatsData2 = "{\"vmId\":1,\"cpuUtilization\":10.0,\"networkReadKBs\":1.0," + "\"networkWriteKBs\":1.1,\"diskReadIOs\":3.0,\"diskWriteIOs\":3.1,\"diskReadKBs\":2.0," + "\"diskWriteKBs\":2.1,\"memoryKBs\":1.0,\"intFreeMemoryKBs\":1.0," + "\"targetMemoryKBs\":1.0,\"numCPUs\":1,\"entityType\":\"vm\"}"; Mockito.doReturn(fakeStatsData1).when(vmStatsVoMock1).getVmStatsData(); Mockito.doReturn(fakeStatsData2).when(vmStatsVoMock2).getVmStatsData(); VmStatsEntry result = statsCollector.accumulateVmMetricsStats(new ArrayList<VmStatsVO>(Arrays.asList(vmStatsVoMock1, vmStatsVoMock2))); Assert.assertEquals("vm", result.getEntityType()); Assert.assertEquals(1, result.getVmId()); Assert.assertEquals(1.0, result.getCPUUtilization(), 0); Assert.assertEquals(1, result.getNumCPUs()); Assert.assertEquals(1.0, result.getMemoryKBs(), 0); Assert.assertEquals(1.0, result.getIntFreeMemoryKBs(), 0); Assert.assertEquals(1.0, result.getTargetMemoryKBs(), 0); Assert.assertEquals(2.0, result.getNetworkReadKBs(), 0); Assert.assertEquals(2.2, result.getNetworkWriteKBs(), 0); Assert.assertEquals(4.0, result.getDiskReadKBs(), 0); Assert.assertEquals(4.2, result.getDiskWriteKBs(), 0); Assert.assertEquals(6.0, result.getDiskReadIOs(), 0); Assert.assertEquals(6.2, result.getDiskWriteIOs(), 0); }
Reusable Method for MCI (click to expand)
private static VmStatsVO createMockVmStatsVo(String vmStatsDataReturn) { VmStatsVO vmStatsVo = Mockito.mock(VmStatsVO.class); Mockito.doReturn(vmStatsDataReturn).when(vmStatsVo).getVmStatsData(); return vmStatsVo; }

Mock Clone Instance #cloudstack_MCI_191

Reusable Method

// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_191_1

Test Case Name: checkClusterReorderingBasedOnImplicitHostTags(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkClusterReorderingBasedOnImplicitHostTags() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); List<Long> reorderedClusterList = new ArrayList<Long>(); reorderedClusterList.add(4L); reorderedClusterList.add(3L); reorderedClusterList.add(1L); reorderedClusterList.add(5L); reorderedClusterList.add(6L); reorderedClusterList.add(2L); assertTrue("Reordered cluster list is not honoring the implict host tags", (clusterList.equals(reorderedClusterList))); }
Original Test Code (click to expand)
@Test public void checkClusterReorderingBasedOnImplicitHostTags() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); List<Long> reorderedClusterList = new ArrayList<Long>(); reorderedClusterList.add(4L); reorderedClusterList.add(3L); reorderedClusterList.add(1L); reorderedClusterList.add(5L); reorderedClusterList.add(6L); reorderedClusterList.add(2L); assertTrue("Reordered cluster list is not honoring the implict host tags", (clusterList.equals(reorderedClusterList))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_191_2

Test Case Name: checkClusterReorderingForDeployVMWithThresholdCheckDisabled(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkClusterReorderingForDeployVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); Map<String, String> details = new HashMap<String, String>(); details.put("deployvm", "true"); when(vmDetailsDao.listDetailsKeyPairs(vmProfile.getVirtualMachine().getId())).thenReturn(details); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters exceeding threshold", (!clusterList.containsAll(clustersCrossingThreshold))); }
Original Test Code (click to expand)
@Test public void checkClusterReorderingForDeployVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); Map<String, String> details = new HashMap<String, String>(); details.put("deployvm", "true"); when(vmDetailsDao.listDetailsKeyPairs(vmProfile.getVirtualMachine().getId())).thenReturn(details); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters exceeding threshold", (!clusterList.containsAll(clustersCrossingThreshold))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_191_3

Test Case Name: checkClusterListBasedOnHostTag(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkClusterListBasedOnHostTag() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> matchingClusters = initializeForClusterListBasedOnHostTag(vmProfile.getServiceOffering()); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters which has hosts with specified host tag on offering", (clusterList.containsAll(matchingClusters))); assertTrue("Reordered cluster list does not have clusters which don't have hosts with matching host tag on offering", (!clusterList.contains(2L))); }
Original Test Code (click to expand)
@Test public void checkClusterListBasedOnHostTag() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> matchingClusters = initializeForClusterListBasedOnHostTag(vmProfile.getServiceOffering()); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list have clusters which has hosts with specified host tag on offering", (clusterList.containsAll(matchingClusters))); assertTrue("Reordered cluster list does not have clusters which don't have hosts with matching host tag on offering", (!clusterList.contains(2L))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_191_4

Test Case Name: checkClusterReorderingForStartVMWithThresholdCheckDisabled(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\FirstFitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkClusterReorderingForStartVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list does not have clusters exceeding threshold", (clusterList.containsAll(clustersCrossingThreshold))); }
Original Test Code (click to expand)
@Test public void checkClusterReorderingForStartVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = mock(ExcludeList.class); initializeForTest(vmProfile, plan, avoids); List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled(); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Reordered cluster list does not have clusters exceeding threshold", (clusterList.containsAll(clustersCrossingThreshold))); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Mock Clone Instance #cloudstack_MCI_192

Reusable Method

// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_192_1

Test Case Name: checkWhenDcInAvoidList(File: C:\Java_projects\Apache\cloudstack\plugins\deployment-planners\implicit-dedication\src\test\java\org\apache\cloudstack\implicitplanner\ImplicitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); VMInstanceVO vm = mock(VMInstanceVO.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` when(avoids.shouldAvoid(mockDc)).thenReturn(true); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(vm.getDataCenterId()).thenReturn(1L); when(dcDao.findById(1L)).thenReturn(mockDc); @@ - List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); + List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Cluster list should be null/empty if the dc is in avoid list", (clusterList == null || clusterList.isEmpty()));
Original Test Code (click to expand)
@Test public void checkWhenDcInAvoidList() throws InsufficientServerCapacityException { DataCenterVO mockDc = mock(DataCenterVO.class); ExcludeList avoids = mock(ExcludeList.class); VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); VMInstanceVO vm = mock(VMInstanceVO.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); when(avoids.shouldAvoid(mockDc)).thenReturn(true); when(vmProfile.getVirtualMachine()).thenReturn(vm); when(vm.getDataCenterId()).thenReturn(1L); when(dcDao.findById(1L)).thenReturn(mockDc); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); assertTrue("Cluster list should be null/empty if the dc is in avoid list", (clusterList == null || clusterList.isEmpty())); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_192_2

Test Case Name: checkStrictModeWithCurrentAccountVmsPresent(File: C:\Java_projects\Apache\cloudstack\plugins\deployment-planners\implicit-dedication\src\test\java\org\apache\cloudstack\implicitplanner\ImplicitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkStrictModeWithCurrentAccountVmsPresent() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster 2 and 3 are not in the cluster list. // Host 6 and 7 should also be in avoid list. assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); assertThat("Found cluster that shouldn't have been present, only cluster 1 should be present", clusterList, everyItem(equalTo(1L))); Set<Long> hostsInAvoidList = avoids.getHostsToAvoid(); assertFalse("Host 5 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(5L)); Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>(); hostsThatShouldBeInAvoidList.add(6L); hostsThatShouldBeInAvoidList.add(7L); assertTrue("Hosts 6 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList)); }
Original Test Code (click to expand)
@Test public void checkStrictModeWithCurrentAccountVmsPresent() throws InsufficientServerCapacityException { VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster 2 and 3 are not in the cluster list. // Host 6 and 7 should also be in avoid list. assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); assertThat("Found cluster that shouldn't have been present, only cluster 1 should be present", clusterList, everyItem(equalTo(1L))); Set<Long> hostsInAvoidList = avoids.getHostsToAvoid(); assertFalse("Host 5 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(5L)); Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>(); hostsThatShouldBeInAvoidList.add(6L); hostsThatShouldBeInAvoidList.add(7L); assertTrue("Hosts 6 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_192_3

Test Case Name: checkStrictModeHostWithCurrentAccountVmsFull(File: C:\Java_projects\Apache\cloudstack\plugins\deployment-planners\implicit-dedication\src\test\java\org\apache\cloudstack\implicitplanner\ImplicitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkStrictModeHostWithCurrentAccountVmsFull() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); // Mark the host 5 with current account vms to be in avoid list. avoids.addHost(5L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster 1 and 3 are not in the cluster list. // Host 5 and 7 should also be in avoid list. assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); assertThat("Found cluster that shouldn't have been present, only cluster 2 should be present", clusterList, everyItem(equalTo(2L))); Set<Long> hostsInAvoidList = avoids.getHostsToAvoid(); assertFalse("Host 6 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(6L)); Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>(); hostsThatShouldBeInAvoidList.add(5L); hostsThatShouldBeInAvoidList.add(7L); assertTrue("Hosts 5 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList)); }
Original Test Code (click to expand)
@Test public void checkStrictModeHostWithCurrentAccountVmsFull() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); // Mark the host 5 with current account vms to be in avoid list. avoids.addHost(5L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster 1 and 3 are not in the cluster list. // Host 5 and 7 should also be in avoid list. assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); assertThat("Found cluster that shouldn't have been present, only cluster 2 should be present", clusterList, everyItem(equalTo(2L))); Set<Long> hostsInAvoidList = avoids.getHostsToAvoid(); assertFalse("Host 6 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(6L)); Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>(); hostsThatShouldBeInAvoidList.add(5L); hostsThatShouldBeInAvoidList.add(7L); assertTrue("Hosts 5 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_192_4

Test Case Name: checkStrictModeNoHostsAvailable(File: C:\Java_projects\Apache\cloudstack\plugins\deployment-planners\implicit-dedication\src\test\java\org\apache\cloudstack\implicitplanner\ImplicitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkStrictModeNoHostsAvailable() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); // Mark the host 5 and 6 to be in avoid list. avoids.addHost(5L); avoids.addHost(6L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster list is empty. assertTrue("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); }
Original Test Code (click to expand)
@Test public void checkStrictModeNoHostsAvailable() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); // Mark the host 5 and 6 to be in avoid list. avoids.addHost(5L); avoids.addHost(6L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster list is empty. assertTrue("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_192_5

Test Case Name: checkPreferredModePreferredHostAvailable(File: C:\Java_projects\Apache\cloudstack\plugins\deployment-planners\implicit-dedication\src\test\java\org\apache\cloudstack\implicitplanner\ImplicitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkPreferredModePreferredHostAvailable() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(true); // Mark the host 5 and 6 to be in avoid list. avoids.addHost(5L); avoids.addHost(6L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster 1 and 2 are not in the cluster list. // Host 5 and 6 should also be in avoid list. assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); assertThat("Found cluster that shouldn't have been present, only cluster 3 should be present", clusterList, everyItem(equalTo(3L))); Set<Long> hostsInAvoidList = avoids.getHostsToAvoid(); assertFalse("Host 7 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(7L)); Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>(); hostsThatShouldBeInAvoidList.add(5L); hostsThatShouldBeInAvoidList.add(6L); assertTrue("Hosts 5 and 6 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList)); }
Original Test Code (click to expand)
@Test public void checkPreferredModePreferredHostAvailable() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(true); // Mark the host 5 and 6 to be in avoid list. avoids.addHost(5L); avoids.addHost(6L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster 1 and 2 are not in the cluster list. // Host 5 and 6 should also be in avoid list. assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); assertThat("Found cluster that shouldn't have been present, only cluster 3 should be present", clusterList, everyItem(equalTo(3L))); Set<Long> hostsInAvoidList = avoids.getHostsToAvoid(); assertFalse("Host 7 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(7L)); Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>(); hostsThatShouldBeInAvoidList.add(5L); hostsThatShouldBeInAvoidList.add(6L); assertTrue("Hosts 5 and 6 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Test Case ID #cloudstack_Test_192_6

Test Case Name: checkPreferredModeNoHostsAvailable(File: C:\Java_projects\Apache\cloudstack\plugins\deployment-planners\implicit-dedication\src\test\java\org\apache\cloudstack\implicitplanner\ImplicitPlannerTest.java)

Mock Object Variable Name: plan

Suggested Diff
@@ @Test public void checkPreferredModeNoHostsAvailable() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); - DataCenterDeployment plan = mock(DataCenterDeployment.class); + // removed local mock; replaced with global field `plan` ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); // Mark the host 5, 6 and 7 to be in avoid list. avoids.addHost(5L); avoids.addHost(6L); avoids.addHost(7L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster list is empty. assertTrue("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); }
Original Test Code (click to expand)
@Test public void checkPreferredModeNoHostsAvailable() throws InsufficientServerCapacityException { @SuppressWarnings("unchecked") VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class); DataCenterDeployment plan = mock(DataCenterDeployment.class); ExcludeList avoids = new ExcludeList(); initializeForTest(vmProfile, plan); initializeForImplicitPlannerTest(false); // Mark the host 5, 6 and 7 to be in avoid list. avoids.addHost(5L); avoids.addHost(6L); avoids.addHost(7L); List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids); // Validations. // Check cluster list is empty. assertTrue("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty())); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenterDeployment plan; // === Add to @BeforeEach method === @BeforeEach public void setUp() { plan = mock(DataCenterDeployment.class); } // === Replace local variable in test with === plan;

Mock Clone Instance #cloudstack_MCI_193

Reusable Method

private static VMSnapshot createMockVMSnapshot(String uuidReturn) { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); when(vmSnapshot.getUuid()).thenReturn(uuidReturn); return vmSnapshot; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_193_1

Test Case Name: testCreateDiskSnapshotBasedOnStrategy(File: C:\Java_projects\Apache\cloudstack\engine\storage\snapshot\src\test\java\org\apache\cloudstack\storage\vmsnapshot\VMSnapshotStrategyKVMTest.java)

Mock Object Variable Name: vmSnapshot

Suggested Diff
--- original +++ refactored @@ @Test public void testCreateDiskSnapshotBasedOnStrategy() throws Exception { - VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); List<SnapshotInfo> forRollback = new ArrayList<>(); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotInfo snapshotInfo = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); SnapshotVO snapshot = new SnapshotVO(vol.getDataCenterId(), vol.getAccountId(), vol.getDomainId(), vol.getId(), vol.getDiskOfferingId(), vmUuid + "_" + volUuid, (short) SnapshotVO.MANUAL_POLICY_ID, "MANUAL", vol.getSize(), vol.getMinIops(), vol.getMaxIops(), Hypervisor.HypervisorType.KVM, null); PowerMockito.whenNew(SnapshotVO.class).withAnyArguments().thenReturn(snapshot); - when(vmSnapshot.getUuid()).thenReturn(vmUuid); + VMSnapshot vmSnapshot = createMockVMSnapshot(vmUuid); when(vol.getUuid()).thenReturn(volUuid); when(_snapshotDao.persist(any())).thenReturn(snapshot); when(vol.getDataStore()).thenReturn(dataStore); when(_snapshotDataFactory.getSnapshot(snapshot.getId(), vol.getDataStore())).thenReturn(snapshotInfo); when(_storageStrategyFactory.getSnapshotStrategy(snapshotInfo, SnapshotOperation.TAKE)).thenReturn(strategy); SnapshotInfo info = null; when(strategy.takeSnapshot(any())).thenReturn(snapshotInfo); VMSnapshotDetailsVO vmDetails = new VMSnapshotDetailsVO(vmSnapshot.getId(), volUuid, String.valueOf(snapshot.getId()), false); PowerMockito.whenNew(VMSnapshotDetailsVO.class).withAnyArguments().thenReturn(vmDetails); when(vmSnapshotDetailsDao.persist(any())).thenReturn(vmDetails); info = vmStrategy.createDiskSnapshot(vmSnapshot, forRollback, vol); assertNotNull(info); } @@
Original Test Code (click to expand)
@Test public void testCreateDiskSnapshotBasedOnStrategy() throws Exception { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); List<SnapshotInfo> forRollback = new ArrayList<>(); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotInfo snapshotInfo = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); SnapshotVO snapshot = new SnapshotVO(vol.getDataCenterId(), vol.getAccountId(), vol.getDomainId(), vol.getId(), vol.getDiskOfferingId(), vmUuid + "_" + volUuid, (short) SnapshotVO.MANUAL_POLICY_ID, "MANUAL", vol.getSize(), vol.getMinIops(), vol.getMaxIops(), Hypervisor.HypervisorType.KVM, null); PowerMockito.whenNew(SnapshotVO.class).withAnyArguments().thenReturn(snapshot); when(vmSnapshot.getUuid()).thenReturn(vmUuid); when(vol.getUuid()).thenReturn(volUuid); when(_snapshotDao.persist(any())).thenReturn(snapshot); when(vol.getDataStore()).thenReturn(dataStore); when(_snapshotDataFactory.getSnapshot(snapshot.getId(), vol.getDataStore())).thenReturn(snapshotInfo); when(_storageStrategyFactory.getSnapshotStrategy(snapshotInfo, SnapshotOperation.TAKE)).thenReturn(strategy); SnapshotInfo info = null; when(strategy.takeSnapshot(any())).thenReturn(snapshotInfo); VMSnapshotDetailsVO vmDetails = new VMSnapshotDetailsVO(vmSnapshot.getId(), volUuid, String.valueOf(snapshot.getId()), false); PowerMockito.whenNew(VMSnapshotDetailsVO.class).withAnyArguments().thenReturn(vmDetails); when(vmSnapshotDetailsDao.persist(any())).thenReturn(vmDetails); info = vmStrategy.createDiskSnapshot(vmSnapshot, forRollback, vol); assertNotNull(info); }
Reusable Method for MCI (click to expand)
private static VMSnapshot createMockVMSnapshot(String uuidReturn) { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); when(vmSnapshot.getUuid()).thenReturn(uuidReturn); return vmSnapshot; }

Test Case ID #cloudstack_Test_193_2

Test Case Name: testRevertDiskSnapshot(File: C:\Java_projects\Apache\cloudstack\engine\storage\snapshot\src\test\java\org\apache\cloudstack\storage\vmsnapshot\VMSnapshotStrategyKVMTest.java)

Mock Object Variable Name: vmSnapshot

Suggested Diff
--- original +++ refactored @@ @Test public void testRevertDiskSnapshot() throws Exception { - VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; when(vol.getUuid()).thenReturn(volUuid); + VMSnapshot vmSnapshot = createMockVMSnapshot(vmUuid); when(vol.getDataStore()).thenReturn(dataStore); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotService.revertSnapshot(snapshotVO.getId())).thenReturn(snap); // testFindSnapshotByName(name); vmStrategy.revertDiskSnapshot(vmSnapshot); } @@
Original Test Code (click to expand)
@Test public void testRevertDiskSnapshot() throws Exception { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; when(vol.getUuid()).thenReturn(volUuid); when(vmSnapshot.getUuid()).thenReturn(vmUuid); when(vol.getDataStore()).thenReturn(dataStore); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotService.revertSnapshot(snapshotVO.getId())).thenReturn(snap); // testFindSnapshotByName(name); vmStrategy.revertDiskSnapshot(vmSnapshot); }
Reusable Method for MCI (click to expand)
private static VMSnapshot createMockVMSnapshot(String uuidReturn) { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); when(vmSnapshot.getUuid()).thenReturn(uuidReturn); return vmSnapshot; }

Test Case ID #cloudstack_Test_193_3

Test Case Name: testDeleteDiskSnapshot(File: C:\Java_projects\Apache\cloudstack\engine\storage\snapshot\src\test\java\org\apache\cloudstack\storage\vmsnapshot\VMSnapshotStrategyKVMTest.java)

Mock Object Variable Name: vmSnapshot

Suggested Diff
--- original +++ refactored @@ @Test public void testDeleteDiskSnapshot() { - VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); SnapshotInfo info = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; when(vol.getUuid()).thenReturn(volUuid); + VMSnapshot vmSnapshot = createMockVMSnapshot(vmUuid); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotDataFactory.getSnapshot(snapshotVO.getId(), vol.getDataStore())).thenReturn(info); when(_storageStrategyFactory.getSnapshotStrategy(info, SnapshotOperation.DELETE)).thenReturn(strategy); testFindSnapshotByName(name); vmStrategy.deleteDiskSnapshot(vmSnapshot); } @@
Original Test Code (click to expand)
@Test public void testDeleteDiskSnapshot() { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); SnapshotInfo info = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; when(vol.getUuid()).thenReturn(volUuid); when(vmSnapshot.getUuid()).thenReturn(vmUuid); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotDataFactory.getSnapshot(snapshotVO.getId(), vol.getDataStore())).thenReturn(info); when(_storageStrategyFactory.getSnapshotStrategy(info, SnapshotOperation.DELETE)).thenReturn(strategy); testFindSnapshotByName(name); vmStrategy.deleteDiskSnapshot(vmSnapshot); }
Reusable Method for MCI (click to expand)
private static VMSnapshot createMockVMSnapshot(String uuidReturn) { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); when(vmSnapshot.getUuid()).thenReturn(uuidReturn); return vmSnapshot; }

Mock Clone Instance #cloudstack_MCI_194

Reusable Method

private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_194_1

Test Case Name: isNativeTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); - when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); @@
Original Test Code (click to expand)
@Test public void isNativeTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_2

Test Case Name: isNativeFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); - when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); @@
Original Test Code (click to expand)
@Test public void isNativeFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_3

Test Case Name: hasSourceVirtualRouterTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
@@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_4

Test Case Name: hasSourceVirtualRouterFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); - when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_5

Test Case Name: getPolicyCounters(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO1, conditionTO2); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); - when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); @@
Original Test Code (click to expand)
@Test public void getPolicyCounters() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_6

Test Case Name: checkConditionsForPolicy1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
--- original +++ refactored @@ public void checkConditionsForPolicy1() { - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO1, conditionTO2); - when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); } @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy1() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_7

Test Case Name: checkConditionsForPolicy2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
--- original +++ refactored @@ - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO1, conditionTO2); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); - when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy2() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_8

Test Case Name: setPerformanceMonitorCommandParams(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: policyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); + AutoScalePolicyTO policyTO = createMockAutoScalePolicyTO(conditionTO1, conditionTO2); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); - when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); @@
Original Test Code (click to expand)
@Test public void setPerformanceMonitorCommandParams() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_9

Test Case Name: updateCountersMap1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpPolicyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); - AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); - when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + AutoScalePolicyTO scaleUpPolicyTO = createMockAutoScalePolicyTO(scaleUpConditionTO); + when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); + when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); @@
Original Test Code (click to expand)
@Test public void updateCountersMap1() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_10

Test Case Name: updateCountersMap1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownPolicyTO

Suggested Diff
--- original +++ refactored @@ when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); - AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); - when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + AutoScalePolicyTO scaleDownPolicyTO = createMockAutoScalePolicyTO(scaleDownConditionTO); + when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); + when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); @@
Original Test Code (click to expand)
@Test public void updateCountersMap1() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_11

Test Case Name: updateCountersMap2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpPolicyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); - AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); - when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); - when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); + AutoScalePolicyTO scaleUpPolicyTO = createMockAutoScalePolicyTO(scaleUpConditionTO); + when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); + when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO)); @@
Original Test Code (click to expand)
@Test public void updateCountersMap2() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleUpPolicyId), any())).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleDownPolicyId), any())).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 11, AutoScaleValueType.AGGREGATED_VM_GROUP, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 31, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 10 * 1000))); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 51, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 20 * 1000))); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithProcessedData(any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); // average per second Mockito.verify(autoScaleManagerImplSpy, times(1)).updateCountersMapWithProcessedData(any(), any(), any(), eq((double) 2)); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_12

Test Case Name: monitorVirtualRouterAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpPolicyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + AutoScalePolicyTO scaleUpPolicyTO = createMockAutoScalePolicyTO(scaleUpConditionTO); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); @@
Original Test Code (click to expand)
@Test public void monitorVirtualRouterAsGroup() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_13

Test Case Name: monitorVirtualRouterAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownPolicyTO

Suggested Diff
--- original +++ refactored @@ when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); - AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + AutoScalePolicyTO scaleDownPolicyTO = createMockAutoScalePolicyTO(scaleDownConditionTO); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); @@
Original Test Code (click to expand)
@Test public void monitorVirtualRouterAsGroup() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_14

Test Case Name: setGetAutoScaleMetricsCommandMetrics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpPolicyTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + AutoScalePolicyTO scaleUpPolicyTO = createMockAutoScalePolicyTO(scaleUpConditionTO); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); - when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Original Test Code (click to expand)
@Test public void setGetAutoScaleMetricsCommandMetrics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Test Case ID #cloudstack_Test_194_15

Test Case Name: setGetAutoScaleMetricsCommandMetrics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownPolicyTO

Suggested Diff
--- original +++ refactored @@ when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); - AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); - CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); - when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); - when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); + ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); + CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + AutoScalePolicyTO scaleDownPolicyTO = createMockAutoScalePolicyTO(scaleDownConditionTO); + when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); @@
Original Test Code (click to expand)
@Test public void setGetAutoScaleMetricsCommandMetrics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyTO createMockAutoScalePolicyTO(ConditionTO... conditions) { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditions)); return policyTO; }

Mock Clone Instance #cloudstack_MCI_195

Reusable Method

public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_195_1

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_2

Test Case Name: testImplementFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); @@
Original Test Code (click to expand)
@Test public void testImplementFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_3

Test Case Name: testReserve(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); @@
Original Test Code (click to expand)
@Test public void testReserve() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_4

Test Case Name: testReserveFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); @@
Original Test Code (click to expand)
@Test public void testReserveFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException, InsufficientAddressCapacityException { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NicProfile nic = mock(NicProfile.class); when(nic.getMacAddress()).thenReturn("macaddress"); when(nic.getReservationStrategy()).thenReturn(ReservationStrategy.Start); final VirtualMachineProfile vmProfile = mock(VirtualMachineProfile.class); final DeployDestination dest = mock(DeployDestination.class); final DataCenterVO dc = mock(DataCenterVO.class); when(dest.getDataCenter()).thenReturn(dc); when(dcdao.findById((long) anyInt())).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final AssociateMacToNetworkAnswer answer = mock(AssociateMacToNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); guru.reserve(nic, network, vmProfile, dest, res); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_5

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_6

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_7

Test Case Name: testImplementURIException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
@@ when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class);
Original Test Code (click to expand)
@Test public void testImplementURIException() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_8

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
@@ when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain(); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class);
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_9

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); - Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + Domain dom = MockDomain.createMockDomain(); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_10

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); - Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + Domain dom = MockDomain.createMockDomain(); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Test Case ID #cloudstack_Test_195_11

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); - Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + Domain dom = MockDomain.createMockDomain(); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain() { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn("domain"); return domain; } }

Mock Clone Instance #cloudstack_MCI_196

Reusable Method

public class MockDomain { public static Domain createMockDomain(String name) { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn(name); return domain; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_196_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ DeployDestination dest = mock(DeployDestination.class); - Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("d1"); + Domain dom = MockDomain.createMockDomain("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); @@
Original Test Code (click to expand)
@Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain(String name) { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn(name); return domain; } }

Test Case ID #cloudstack_Test_196_2

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dom

Suggested Diff
@@ final DeployDestination dest = mock(DeployDestination.class); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); @@
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain(String name) { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn(name); return domain; } }

Test Case ID #cloudstack_Test_196_3

Test Case Name: implementSharedNetworkUuidVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ final DeployDestination dest = mock(DeployDestination.class); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkUuidVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain(String name) { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn(name); return domain; } }

Test Case ID #cloudstack_Test_196_4

Test Case Name: implementSharedNetworkNumericalVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ final DeployDestination dest = mock(DeployDestination.class); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkNumericalVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn("bbbb-bbbb-bbbb"); final ConfigureSharedNetworkVlanIdAnswer answer = mock(ConfigureSharedNetworkVlanIdAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain(String name) { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn(name); return domain; } }

Test Case ID #cloudstack_Test_196_5

Test Case Name: implementSharedNetworkNumericalVlanIdWithoutL2GatewayService(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: dom

Suggested Diff
--- original +++ refactored @@ final DeployDestination dest = mock(DeployDestination.class); - final Domain dom = mock(Domain.class); - when(dom.getName()).thenReturn("domain"); + final Domain dom = MockDomain.createMockDomain("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void implementSharedNetworkNumericalVlanIdWithoutL2GatewayService() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); element.implement(network, offering, dest, context); }
Reusable Method for MCI (click to expand)
public class MockDomain { public static Domain createMockDomain(String name) { Domain domain = mock(Domain.class); when(domain.getName()).thenReturn(name); return domain; } }

Mock Clone Instance #cloudstack_MCI_197

Reusable Method

private static CreateGuestNetworkIpv6PrefixCmd createMockCreateGuestNetworkIpv6PrefixCmd(String prefix) { CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(cmd.getPrefix()).thenReturn(prefix); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_197_1

Test Case Name: testInvalidCreateDataCenterGuestIpv6Prefix(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ @Test(expected = IllegalArgumentException.class) public void testInvalidCreateDataCenterGuestIpv6Prefix() { - CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); - Mockito.when(cmd.getZoneId()).thenReturn(1L); - Mockito.when(cmd.getPrefix()).thenReturn("Invalid"); + CreateGuestNetworkIpv6PrefixCmd cmd = createMockCreateGuestNetworkIpv6PrefixCmd("Invalid"); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); configurationMgr.createDataCenterGuestIpv6Prefix(cmd); } @@
Original Test Code (click to expand)
@Test(expected = IllegalArgumentException.class) public void testInvalidCreateDataCenterGuestIpv6Prefix() { CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(cmd.getPrefix()).thenReturn("Invalid"); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); configurationMgr.createDataCenterGuestIpv6Prefix(cmd); }
Reusable Method for MCI (click to expand)
private static CreateGuestNetworkIpv6PrefixCmd createMockCreateGuestNetworkIpv6PrefixCmd(String prefix) { CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(cmd.getPrefix()).thenReturn(prefix); return cmd; }

Test Case ID #cloudstack_Test_197_2

Test Case Name: testWrongCreateDataCenterGuestIpv6Prefix(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ public void testWrongCreateDataCenterGuestIpv6Prefix() { - CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); - Mockito.when(cmd.getZoneId()).thenReturn(1L); - Mockito.when(cmd.getPrefix()).thenReturn("fd17:5:8a43:e2a4:c000::/66"); + CreateGuestNetworkIpv6PrefixCmd cmd = createMockCreateGuestNetworkIpv6PrefixCmd("fd17:5:8a43:e2a4:c000::/66"); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); configurationMgr.createDataCenterGuestIpv6Prefix(cmd); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testWrongCreateDataCenterGuestIpv6Prefix() { CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(cmd.getPrefix()).thenReturn("fd17:5:8a43:e2a4:c000::/66"); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); configurationMgr.createDataCenterGuestIpv6Prefix(cmd); }
Reusable Method for MCI (click to expand)
private static CreateGuestNetworkIpv6PrefixCmd createMockCreateGuestNetworkIpv6PrefixCmd(String prefix) { CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(cmd.getPrefix()).thenReturn(prefix); return cmd; }

Test Case ID #cloudstack_Test_197_3

Test Case Name: testConflictingCreateDataCenterGuestIpv6Prefix(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ public void testConflictingCreateDataCenterGuestIpv6Prefix() { - CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); - Mockito.when(cmd.getZoneId()).thenReturn(1L); - Mockito.when(cmd.getPrefix()).thenReturn("fd17:5:8a43:e2a5::/64"); + CreateGuestNetworkIpv6PrefixCmd cmd = createMockCreateGuestNetworkIpv6PrefixCmd("fd17:5:8a43:e2a5::/64"); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); DataCenterGuestIpv6PrefixVO prefix = Mockito.mock(DataCenterGuestIpv6PrefixVO.class); Mockito.when(prefix.getPrefix()).thenReturn("fd17:5:8a43:e2a4::/62"); Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(prefix)); configurationMgr.createDataCenterGuestIpv6Prefix(cmd); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testConflictingCreateDataCenterGuestIpv6Prefix() { CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(cmd.getPrefix()).thenReturn("fd17:5:8a43:e2a5::/64"); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); DataCenterGuestIpv6PrefixVO prefix = Mockito.mock(DataCenterGuestIpv6PrefixVO.class); Mockito.when(prefix.getPrefix()).thenReturn("fd17:5:8a43:e2a4::/62"); Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(prefix)); configurationMgr.createDataCenterGuestIpv6Prefix(cmd); }
Reusable Method for MCI (click to expand)
private static CreateGuestNetworkIpv6PrefixCmd createMockCreateGuestNetworkIpv6PrefixCmd(String prefix) { CreateGuestNetworkIpv6PrefixCmd cmd = Mockito.mock(CreateGuestNetworkIpv6PrefixCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(cmd.getPrefix()).thenReturn(prefix); return cmd; }

Mock Clone Instance #cloudstack_MCI_198

Reusable Method

private static CreateNetworkOfferingCmd createMockCreateNetworkOfferingCmd(String guestIpTypeReturn, String internetProtocolReturn, String trafficTypeReturn) { CreateNetworkOfferingCmd cmd = Mockito.mock(CreateNetworkOfferingCmd.class); Mockito.when(cmd.getGuestIpType()).thenReturn(guestIpTypeReturn); Mockito.when(cmd.getInternetProtocol()).thenReturn(internetProtocolReturn); Mockito.when(cmd.getTraffictype()).thenReturn(trafficTypeReturn); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_198_1

Test Case Name: testInvalidNetworkTypeCreateIpv6NetworkOffering(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ @Test(expected = InvalidParameterValueException.class) public void testInvalidNetworkTypeCreateIpv6NetworkOffering() { - CreateNetworkOfferingCmd cmd = Mockito.mock(CreateNetworkOfferingCmd.class); - Mockito.when(cmd.getTraffictype()).thenReturn(Networks.TrafficType.Guest.toString()); - Mockito.when(cmd.getGuestIpType()).thenReturn(Network.GuestType.L2.toString()); - Mockito.when(cmd.getInternetProtocol()).thenReturn(NetUtils.InternetProtocol.DualStack.toString()); + CreateNetworkOfferingCmd cmd = createMockCreateNetworkOfferingCmd( + Network.GuestType.L2.toString(), + NetUtils.InternetProtocol.DualStack.toString(), + Networks.TrafficType.Guest.toString() + ); configurationMgr.createNetworkOffering(cmd); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testInvalidNetworkTypeCreateIpv6NetworkOffering() { CreateNetworkOfferingCmd cmd = Mockito.mock(CreateNetworkOfferingCmd.class); Mockito.when(cmd.getTraffictype()).thenReturn(Networks.TrafficType.Guest.toString()); Mockito.when(cmd.getGuestIpType()).thenReturn(Network.GuestType.L2.toString()); Mockito.when(cmd.getInternetProtocol()).thenReturn(NetUtils.InternetProtocol.DualStack.toString()); configurationMgr.createNetworkOffering(cmd); }
Reusable Method for MCI (click to expand)
private static CreateNetworkOfferingCmd createMockCreateNetworkOfferingCmd(String guestIpTypeReturn, String internetProtocolReturn, String trafficTypeReturn) { CreateNetworkOfferingCmd cmd = Mockito.mock(CreateNetworkOfferingCmd.class); Mockito.when(cmd.getGuestIpType()).thenReturn(guestIpTypeReturn); Mockito.when(cmd.getInternetProtocol()).thenReturn(internetProtocolReturn); Mockito.when(cmd.getTraffictype()).thenReturn(trafficTypeReturn); return cmd; }

Test Case ID #cloudstack_Test_198_2

Test Case Name: testDisabledConfigCreateIpv6NetworkOffering(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ public void testDisabledConfigCreateIpv6NetworkOffering() { - CreateNetworkOfferingCmd cmd = Mockito.mock(CreateNetworkOfferingCmd.class); - Mockito.when(cmd.getTraffictype()).thenReturn(Networks.TrafficType.Guest.toString()); - Mockito.when(cmd.getGuestIpType()).thenReturn(Network.GuestType.Isolated.toString()); - Mockito.when(cmd.getInternetProtocol()).thenReturn(NetUtils.InternetProtocol.DualStack.toString()); + CreateNetworkOfferingCmd cmd = createMockCreateNetworkOfferingCmd( + Network.GuestType.Isolated.toString(), + NetUtils.InternetProtocol.DualStack.toString(), + Networks.TrafficType.Guest.toString() + ); configurationMgr.createNetworkOffering(cmd); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testDisabledConfigCreateIpv6NetworkOffering() { CreateNetworkOfferingCmd cmd = Mockito.mock(CreateNetworkOfferingCmd.class); Mockito.when(cmd.getTraffictype()).thenReturn(Networks.TrafficType.Guest.toString()); Mockito.when(cmd.getGuestIpType()).thenReturn(Network.GuestType.Isolated.toString()); Mockito.when(cmd.getInternetProtocol()).thenReturn(NetUtils.InternetProtocol.DualStack.toString()); configurationMgr.createNetworkOffering(cmd); }
Reusable Method for MCI (click to expand)
private static CreateNetworkOfferingCmd createMockCreateNetworkOfferingCmd(String guestIpTypeReturn, String internetProtocolReturn, String trafficTypeReturn) { CreateNetworkOfferingCmd cmd = Mockito.mock(CreateNetworkOfferingCmd.class); Mockito.when(cmd.getGuestIpType()).thenReturn(guestIpTypeReturn); Mockito.when(cmd.getInternetProtocol()).thenReturn(internetProtocolReturn); Mockito.when(cmd.getTraffictype()).thenReturn(trafficTypeReturn); return cmd; }

Mock Clone Instance #cloudstack_MCI_199

Reusable Method

// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_199_1

Test Case Name: applyStaticNatsAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyStaticNatsAddRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); - when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); + when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsAddRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_199_2

Test Case Name: applyStaticNatsAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyStaticNatsAddRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); - when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); + when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsAddRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer assignFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(false); when(assignFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(AssignTungstenFloatingIpCommand.class), anyLong())).thenReturn(assignFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_199_3

Test Case Name: applyStaticNatsRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyStaticNatsRevokeRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); - when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); + when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsRevokeRuleSuccessTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(true); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertTrue(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_199_4

Test Case Name: applyStaticNatsRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyStaticNatsRevokeRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Original Test Code (click to expand)
@Test public void applyStaticNatsRevokeRuleFailTest() { Network network = mock(Network.class); StaticNatImpl staticNat = mock(StaticNatImpl.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); VMInstanceVO vmInstanceVO = mock(VMInstanceVO.class); TungstenAnswer releaseFloatingIpAnswer = mock(TungstenAnswer.class); Nic nic = mock(Nic.class); Network publicNetwork = mock(Network.class); List<StaticNatImpl> staticNatList = List.of(staticNat); when(staticNat.isForRevoke()).thenReturn(true); when(releaseFloatingIpAnswer.getResult()).thenReturn(false); when(ipAddressDao.findByIdIncludingRemoved(anyLong())).thenReturn(ipAddressVO); when(vmInstanceDao.findByIdIncludingRemoved(anyLong())).thenReturn(vmInstanceVO); when(networkModel.getNicInNetworkIncludingRemoved(anyLong(), anyLong())).thenReturn(nic); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(tungstenFabricUtils.sendTungstenCommand(any(ReleaseTungstenFloatingIpCommand.class), anyLong())).thenReturn(releaseFloatingIpAnswer); assertFalse(tungstenElement.applyStaticNats(network, staticNatList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_199_5

Test Case Name: applyPFRulesAddRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); - when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); + when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_199_6

Test Case Name: applyPFRulesAddRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); - when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); + when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesAddRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Add); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_199_7

Test Case Name: applyPFRulesRevokeRuleSuccessTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); - when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); + when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleSuccessTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(true); assertTrue(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Test Case ID #cloudstack_Test_199_8

Test Case Name: applyPFRulesRevokeRuleFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenElementTest.java)

Mock Object Variable Name: nic

Suggested Diff
@@ @Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); - Nic nic = mock(Nic.class); + // removed local mock; replaced with global field `nic` TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); - when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); + when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Original Test Code (click to expand)
@Test public void applyPFRulesRevokeRuleFailTest() { Network network = mock(Network.class); Network publicNetwork = mock(Network.class); PortForwardingRule portForwardingRule = mock(PortForwardingRule.class); IPAddressVO ipAddressVO = mock(IPAddressVO.class); UserVm userVm = mock(UserVm.class); Nic nic = mock(Nic.class); TungstenAnswer applyTungstenPortForwardingAnswer = mock(TungstenAnswer.class); List<PortForwardingRule> portForwardingRuleList = List.of(portForwardingRule); when(portForwardingRule.getState()).thenReturn(FirewallRule.State.Revoke); when(networkModel.getSystemNetworkByZoneAndTrafficType(anyLong(), any())).thenReturn(publicNetwork); when(ApiDBUtils.findIpAddressById(anyLong())).thenReturn(ipAddressVO); when(ApiDBUtils.findUserVmById(anyLong())).thenReturn(userVm); when(networkModel.getNicInNetwork(anyLong(), anyLong())).thenReturn(nic); when(tungstenFabricUtils.sendTungstenCommand(any(ApplyTungstenPortForwardingCommand.class), anyLong())).thenReturn(applyTungstenPortForwardingAnswer); when(applyTungstenPortForwardingAnswer.getResult()).thenReturn(false); assertFalse(tungstenElement.applyPFRules(network, portForwardingRuleList)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private Nic nic; // === Add to @BeforeEach method === @BeforeEach public void setUp() { nic = mock(Nic.class); } // === Replace local variable in test with === nic;

Mock Clone Instance #cloudstack_MCI_200

Reusable Method

private static ConfigKey createMockConfigKey(boolean valueInReturn) { ConfigKey mockConfigKey = mock(ConfigKey.class); when(mockConfigKey.valueIn(any(Long.class))).thenReturn(valueInReturn); return mockConfigKey; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_200_1

Test Case Name: testaddHostIpToCertDetailsIfConfigAllows(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: testConfig

Suggested Diff
--- original +++ refactored @@ Host vmHost = mock(Host.class); - ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); + ConfigKey testConfig = createMockConfigKey(true); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); when(vmHost.getPrivateIpAddress()).thenReturn(hostIp); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertTrue(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertEquals(hostIp, ipAddresses.get(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); @@
Original Test Code (click to expand)
@Test public void testaddHostIpToCertDetailsIfConfigAllows() { Host vmHost = mock(Host.class); ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); when(testConfig.valueIn(dataCenterId)).thenReturn(true); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); when(vmHost.getPrivateIpAddress()).thenReturn(hostIp); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertTrue(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertEquals(hostIp, ipAddresses.get(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); }
Reusable Method for MCI (click to expand)
private static ConfigKey createMockConfigKey(boolean valueInReturn) { ConfigKey mockConfigKey = mock(ConfigKey.class); when(mockConfigKey.valueIn(any(Long.class))).thenReturn(valueInReturn); return mockConfigKey; }

Test Case ID #cloudstack_Test_200_2

Test Case Name: testaddHostIpToCertDetailsIfConfigAllowsWhenConfigFalse(File: C:\Java_projects\Apache\cloudstack\engine\orchestration\src\test\java\com\cloud\vm\VirtualMachineManagerImplTest.java)

Mock Object Variable Name: testConfig

Suggested Diff
--- original +++ refactored @@ Host vmHost = mock(Host.class); - ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); + ConfigKey testConfig = createMockConfigKey(false); - when(testConfig.valueIn(dataCenterId)).thenReturn(false); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertFalse(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); @@
Original Test Code (click to expand)
@Test public void testaddHostIpToCertDetailsIfConfigAllowsWhenConfigFalse() { Host vmHost = mock(Host.class); ConfigKey testConfig = mock(ConfigKey.class); Long dataCenterId = 5L; String hostIp = "1.1.1.1"; String routerIp = "2.2.2.2"; Map<String, String> ipAddresses = new HashMap<>(); ipAddresses.put(NetworkElementCommand.ROUTER_IP, routerIp); when(testConfig.valueIn(dataCenterId)).thenReturn(false); when(vmHost.getDataCenterId()).thenReturn(dataCenterId); virtualMachineManagerImpl.addHostIpToCertDetailsIfConfigAllows(vmHost, ipAddresses, testConfig); assertFalse(ipAddresses.containsKey(NetworkElementCommand.HYPERVISOR_HOST_PRIVATE_IP)); assertTrue(ipAddresses.containsKey(NetworkElementCommand.ROUTER_IP)); assertEquals(routerIp, ipAddresses.get(NetworkElementCommand.ROUTER_IP)); }
Reusable Method for MCI (click to expand)
private static ConfigKey createMockConfigKey(boolean valueInReturn) { ConfigKey mockConfigKey = mock(ConfigKey.class); when(mockConfigKey.valueIn(any(Long.class))).thenReturn(valueInReturn); return mockConfigKey; }

Mock Clone Instance #cloudstack_MCI_201

Reusable Method

private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_201_1

Test Case Name: isNativeTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void isNativeTrue() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); } @@
Original Test Code (click to expand)
@Test public void isNativeTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_2

Test Case Name: monitorVirtualRouterAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(scaleUpPolicyTO, scaleDownPolicyTO); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); @@
Original Test Code (click to expand)
@Test public void monitorVirtualRouterAsGroup() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_3

Test Case Name: isNativeFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void isNativeFalse() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); } @@
Original Test Code (click to expand)
@Test public void isNativeFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_4

Test Case Name: hasSourceVirtualRouterTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void hasSourceVirtualRouterTrue() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); } @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_5

Test Case Name: hasSourceVirtualRouterFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ public void hasSourceVirtualRouterFalse() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); } @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_6

Test Case Name: getPolicyCounters(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void getPolicyCounters() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); } @@
Original Test Code (click to expand)
@Test public void getPolicyCounters() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_7

Test Case Name: setGetAutoScaleMetricsCommandMetrics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void setGetAutoScaleMetricsCommandMetrics() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(scaleUpPolicyTO, scaleDownPolicyTO); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); } @@
Original Test Code (click to expand)
@Test public void setGetAutoScaleMetricsCommandMetrics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_8

Test Case Name: getAutoscaleAction(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void getAutoscaleAction() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); when(groupTO.getId()).thenReturn(vmGroupId); when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).isQuitTimePassForPolicy(policyTO); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEUP).when(autoScaleManagerImplSpy).checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); AutoScalePolicy.Action result = autoScaleManagerImplSpy.getAutoscaleAction(countersMap, countersNumberMap, groupTO); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); } @@
Original Test Code (click to expand)
@Test public void getAutoscaleAction() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); when(groupTO.getId()).thenReturn(vmGroupId); when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).isQuitTimePassForPolicy(policyTO); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEUP).when(autoScaleManagerImplSpy).checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); AutoScalePolicy.Action result = autoScaleManagerImplSpy.getAutoscaleAction(countersMap, countersNumberMap, groupTO); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_9

Test Case Name: setPerformanceMonitorCommandParams(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void setPerformanceMonitorCommandParams() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); } @@
Original Test Code (click to expand)
@Test public void setPerformanceMonitorCommandParams() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_10

Test Case Name: cleanupAsVmGroupStatistics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ @Test public void cleanupAsVmGroupStatistics() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(policyTO); when(groupTO.getId()).thenReturn(vmGroupId); when(policyTO.getId()).thenReturn(scaleUpPolicyId); autoScaleManagerImplSpy.cleanupAsVmGroupStatistics(groupTO); Mockito.verify(asGroupStatisticsDao).removeByGroupAndPolicy(eq(vmGroupId), eq(scaleUpPolicyId), any()); Mockito.verify(asGroupStatisticsDao).removeByGroupId(eq(vmGroupId), any()); } @@
Original Test Code (click to expand)
@Test public void cleanupAsVmGroupStatistics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(groupTO.getId()).thenReturn(vmGroupId); when(policyTO.getId()).thenReturn(scaleUpPolicyId); autoScaleManagerImplSpy.cleanupAsVmGroupStatistics(groupTO); Mockito.verify(asGroupStatisticsDao).removeByGroupAndPolicy(eq(vmGroupId), eq(scaleUpPolicyId), any()); Mockito.verify(asGroupStatisticsDao).removeByGroupId(eq(vmGroupId), any()); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_11

Test Case Name: updateCountersMap1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void updateCountersMap1() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - when(groupTO.getId()).thenReturn(vmGroupId); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(scaleUpPolicyTO, scaleDownPolicyTO); + when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Original Test Code (click to expand)
@Test public void updateCountersMap1() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Test Case ID #cloudstack_Test_201_12

Test Case Name: updateCountersMap2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ public void updateCountersMap2() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - when(groupTO.getId()).thenReturn(vmGroupId); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(scaleUpPolicyTO); + when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); - when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleUpPolicyId), any())).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleDownPolicyId), any())).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 11, AutoScaleValueType.AGGREGATED_VM_GROUP, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 31, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 10 * 1000))); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 51, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 20 * 1000))); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithProcessedData(any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); // average per second Mockito.verify(autoScaleManagerImplSpy, times(1)).updateCountersMapWithProcessedData(any(), any(), any(), eq((double) 2)); } @@
Original Test Code (click to expand)
@Test public void updateCountersMap2() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleUpPolicyId), any())).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleDownPolicyId), any())).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 11, AutoScaleValueType.AGGREGATED_VM_GROUP, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 31, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 10 * 1000))); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 51, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 20 * 1000))); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithProcessedData(any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); // average per second Mockito.verify(autoScaleManagerImplSpy, times(1)).updateCountersMapWithProcessedData(any(), any(), any(), eq((double) 2)); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(AutoScalePolicyTO... policies) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policies)); return groupTO; }

Mock Clone Instance #cloudstack_MCI_202

Reusable Method

private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(Long idReturn) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(idReturn); return groupTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_202_1

Test Case Name: processVmStatsByIdFromHost(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void processVmStatsByIdFromHost() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - when(groupTO.getId()).thenReturn(vmGroupId); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(vmGroupId); List<Long> vmIds = Arrays.asList(virtualMachineId); double cpuUtilization = 6; double memoryKBs = 3; Map<Long, VmStatsEntry> vmStatsById = new HashMap<>(); VmStatsEntry vmStats = new VmStatsEntry(virtualMachineId, memoryKBs, 4, 5, cpuUtilization, 7, 8, 9, 10, 11, 12, 13, "vm"); vmStatsById.put(virtualMachineId, vmStats); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); CounterTO counter1 = new CounterTO(counterId, counterName, Counter.Source.CPU, counterValue, counterProvider); CounterTO counter2 = new CounterTO(counterId + 1, counterName, Counter.Source.MEMORY, counterValue, counterProvider); CounterTO counter3 = new CounterTO(counterId + 2, counterName, Counter.Source.VIRTUALROUTER, counterValue, counterProvider); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(counter1, counter2, counter3)); when(asGroupStatisticsDao.persist(any())).thenReturn(Mockito.mock(AutoScaleVmGroupStatisticsVO.class)); autoScaleManagerImplSpy.processVmStatsByIdFromHost(groupTO, vmIds, vmStatsById, policyCountersMap); Mockito.verify(asGroupStatisticsDao, times(2)).persist(any()); } @@
Original Test Code (click to expand)
@Test public void processVmStatsByIdFromHost() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); List<Long> vmIds = Arrays.asList(virtualMachineId); double cpuUtilization = 6; double memoryKBs = 3; Map<Long, VmStatsEntry> vmStatsById = new HashMap<>(); VmStatsEntry vmStats = new VmStatsEntry(virtualMachineId, memoryKBs, 4, 5, cpuUtilization, 7, 8, 9, 10, 11, 12, 13, "vm"); vmStatsById.put(virtualMachineId, vmStats); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); CounterTO counter1 = new CounterTO(counterId, counterName, Counter.Source.CPU, counterValue, counterProvider); CounterTO counter2 = new CounterTO(counterId + 1, counterName, Counter.Source.MEMORY, counterValue, counterProvider); CounterTO counter3 = new CounterTO(counterId + 2, counterName, Counter.Source.VIRTUALROUTER, counterValue, counterProvider); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(counter1, counter2, counter3)); when(asGroupStatisticsDao.persist(any())).thenReturn(Mockito.mock(AutoScaleVmGroupStatisticsVO.class)); autoScaleManagerImplSpy.processVmStatsByIdFromHost(groupTO, vmIds, vmStatsById, policyCountersMap); Mockito.verify(asGroupStatisticsDao, times(2)).persist(any()); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(Long idReturn) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(idReturn); return groupTO; }

Test Case ID #cloudstack_Test_202_2

Test Case Name: getHostAndVmIdsMap(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ public void getHostAndVmIdsMap() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - when(groupTO.getId()).thenReturn(vmGroupId); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(vmGroupId); when(autoScaleVmGroupVmMapDao.listByGroup(vmGroupId)).thenReturn(Arrays.asList(autoScaleVmGroupVmMapVOMock)); when(autoScaleVmGroupVmMapVOMock.getInstanceId()).thenReturn(virtualMachineId); when(userVmDao.findById(virtualMachineId)).thenReturn(userVmMock); when(userVmMock.getHostId()).thenReturn(null); Map<Long, List<Long>> result = autoScaleManagerImplSpy.getHostAndVmIdsMap(groupTO); Assert.assertEquals(1, result.size()); List<Long> vmIds = result.get(-1L); Assert.assertNotNull(vmIds); Assert.assertEquals(1, vmIds.size()); Assert.assertEquals(virtualMachineId, vmIds.get(0)); }
Original Test Code (click to expand)
@Test public void getHostAndVmIdsMap() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); when(autoScaleVmGroupVmMapDao.listByGroup(vmGroupId)).thenReturn(Arrays.asList(autoScaleVmGroupVmMapVOMock)); when(autoScaleVmGroupVmMapVOMock.getInstanceId()).thenReturn(virtualMachineId); when(userVmDao.findById(virtualMachineId)).thenReturn(userVmMock); when(userVmMock.getHostId()).thenReturn(null); Map<Long, List<Long>> result = autoScaleManagerImplSpy.getHostAndVmIdsMap(groupTO); Assert.assertEquals(1, result.size()); List<Long> vmIds = result.get(-1L); Assert.assertNotNull(vmIds); Assert.assertEquals(1, vmIds.size()); Assert.assertEquals(virtualMachineId, vmIds.get(0)); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(Long idReturn) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(idReturn); return groupTO; }

Mock Clone Instance #cloudstack_MCI_203

Reusable Method

private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(Long loadBalancerId) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); return groupTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_203_1

Test Case Name: getNetworkStatsFromVirtualRouterWithoutRouter(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void getNetworkStatsFromVirtualRouterWithoutRouter() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(loadBalancerId); PowerMockito.doReturn(networkMock).when(autoScaleManagerImplSpy).getNetwork(loadBalancerId); when(networkMock.getId()).thenReturn(networkId); Pair<String, Integer> publicIpAddr = new Pair<>(ipAddress, memberPort); PowerMockito.doReturn(publicIpAddr).when(autoScaleManagerImplSpy).getPublicIpAndPort(loadBalancerId); when(routerDao.listByNetworkAndRole(networkId, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(new ArrayList<>()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(any(), any(), nullable(Long.class)); autoScaleManagerImplSpy.getNetworkStatsFromVirtualRouter(groupTO); Mockito.verify(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(eq(groupTO), any(), eq(null)); } @@
Original Test Code (click to expand)
@Test public void getNetworkStatsFromVirtualRouterWithoutRouter() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); PowerMockito.doReturn(networkMock).when(autoScaleManagerImplSpy).getNetwork(loadBalancerId); when(networkMock.getId()).thenReturn(networkId); Pair<String, Integer> publicIpAddr = new Pair<>(ipAddress, memberPort); PowerMockito.doReturn(publicIpAddr).when(autoScaleManagerImplSpy).getPublicIpAndPort(loadBalancerId); when(routerDao.listByNetworkAndRole(networkId, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(new ArrayList<>()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(any(), any(), nullable(Long.class)); autoScaleManagerImplSpy.getNetworkStatsFromVirtualRouter(groupTO); Mockito.verify(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(eq(groupTO), any(), eq(null)); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(Long loadBalancerId) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); return groupTO; }

Test Case ID #cloudstack_Test_203_2

Test Case Name: getNetworkStatsFromVirtualRouterWithOneRouter(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
--- original +++ refactored @@ @Test public void getNetworkStatsFromVirtualRouterWithOneRouter() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); - when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); + AutoScaleVmGroupTO groupTO = createMockAutoScaleVmGroupTO(loadBalancerId); PowerMockito.doReturn(networkMock).when(autoScaleManagerImplSpy).getNetwork(loadBalancerId); when(networkMock.getId()).thenReturn(networkId); Pair<String, Integer> publicIpAddr = new Pair<>(ipAddress, memberPort); PowerMockito.doReturn(publicIpAddr).when(autoScaleManagerImplSpy).getPublicIpAndPort(loadBalancerId); when(routerDao.listByNetworkAndRole(networkId, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(Arrays.asList(domainRouterMock)); when(domainRouterMock.getState()).thenReturn(VirtualMachine.State.Running); when(domainRouterMock.getId()).thenReturn(domainRouterId); when(domainRouterMock.getHostId()).thenReturn(hostId); List<VirtualRouterAutoScale.AutoScaleMetrics> metrics = Mockito.mock(ArrayList.class); PowerMockito.doReturn(metrics).when(autoScaleManagerImplSpy).setGetAutoScaleMetricsCommandMetrics(groupTO); GetAutoScaleMetricsCommand command = Mockito.mock(GetAutoScaleMetricsCommand.class); List<VirtualRouterAutoScale.AutoScaleMetricsValue> values = Mockito.mock(ArrayList.class); GetAutoScaleMetricsAnswer answer = new GetAutoScaleMetricsAnswer(command, true, values); when(agentMgr.easySend(eq(hostId), any(GetAutoScaleMetricsCommand.class))).thenReturn(answer); PowerMockito.doNothing().when(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(any(), any(), nullable(Long.class)); autoScaleManagerImplSpy.getNetworkStatsFromVirtualRouter(groupTO); Mockito.verify(agentMgr).easySend(eq(hostId), any()); Mockito.verify(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(groupTO, values, domainRouterId); } @@
Original Test Code (click to expand)
@Test public void getNetworkStatsFromVirtualRouterWithOneRouter() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); PowerMockito.doReturn(networkMock).when(autoScaleManagerImplSpy).getNetwork(loadBalancerId); when(networkMock.getId()).thenReturn(networkId); Pair<String, Integer> publicIpAddr = new Pair<>(ipAddress, memberPort); PowerMockito.doReturn(publicIpAddr).when(autoScaleManagerImplSpy).getPublicIpAndPort(loadBalancerId); when(routerDao.listByNetworkAndRole(networkId, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(Arrays.asList(domainRouterMock)); when(domainRouterMock.getState()).thenReturn(VirtualMachine.State.Running); when(domainRouterMock.getId()).thenReturn(domainRouterId); when(domainRouterMock.getHostId()).thenReturn(hostId); List<VirtualRouterAutoScale.AutoScaleMetrics> metrics = Mockito.mock(ArrayList.class); PowerMockito.doReturn(metrics).when(autoScaleManagerImplSpy).setGetAutoScaleMetricsCommandMetrics(groupTO); GetAutoScaleMetricsCommand command = Mockito.mock(GetAutoScaleMetricsCommand.class); List<VirtualRouterAutoScale.AutoScaleMetricsValue> values = Mockito.mock(ArrayList.class); GetAutoScaleMetricsAnswer answer = new GetAutoScaleMetricsAnswer(command, true, values); when(agentMgr.easySend(eq(hostId), any(GetAutoScaleMetricsCommand.class))).thenReturn(answer); PowerMockito.doNothing().when(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(any(), any(), nullable(Long.class)); autoScaleManagerImplSpy.getNetworkStatsFromVirtualRouter(groupTO); Mockito.verify(agentMgr).easySend(eq(hostId), any()); Mockito.verify(autoScaleManagerImplSpy).processGetAutoScaleMetricsAnswer(groupTO, values, domainRouterId); }
Reusable Method for MCI (click to expand)
private static AutoScaleVmGroupTO createMockAutoScaleVmGroupTO(Long loadBalancerId) { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getLoadBalancerId()).thenReturn(loadBalancerId); return groupTO; }

Mock Clone Instance #cloudstack_MCI_204

Reusable Method

// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

The refactoring details in each test cases


Test Case ID #cloudstack_Test_204_1

Test Case Name: checkNetScalerAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ @Test public void checkNetScalerAsGroup() throws OperationTimedoutException, AgentUnavailableException { when(asVmGroupMock.getId()).thenReturn(vmGroupId); - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + // removed local mock; replaced with global field `groupTO` when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).isNative(groupTO); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.listByGroup(vmGroupId)).thenReturn(Arrays.asList(autoScaleVmGroupVmMapVOMock)); when(autoScaleVmGroupVmMapVOMock.getInstanceId()).thenReturn(virtualMachineId); when(vmInstanceDao.findById(virtualMachineId)).thenReturn(userVmMock); when(userVmMock.getHostId()).thenReturn(hostId); when(userVmMock.getInstanceName()).thenReturn(vmName); PowerMockito.doNothing().when(autoScaleManagerImplSpy).setPerformanceMonitorCommandParams(any(), any()); PerformanceMonitorCommand command = Mockito.mock(PerformanceMonitorCommand.class); PerformanceMonitorAnswer answer = new PerformanceMonitorAnswer(command, true, "result"); when(agentMgr.send(eq(hostId), any(PerformanceMonitorCommand.class))).thenReturn(answer); PowerMockito.doNothing().when(autoScaleManagerImplSpy).processPerformanceMonitorAnswer(any(), any(), any(), any(), any()); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEUP).when(autoScaleManagerImplSpy).getAutoscaleAction(any(), any(), any()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); autoScaleManagerImplSpy.checkNetScalerAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); }
Original Test Code (click to expand)
@Test public void checkNetScalerAsGroup() throws OperationTimedoutException, AgentUnavailableException { when(asVmGroupMock.getId()).thenReturn(vmGroupId); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).isNative(groupTO); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.listByGroup(vmGroupId)).thenReturn(Arrays.asList(autoScaleVmGroupVmMapVOMock)); when(autoScaleVmGroupVmMapVOMock.getInstanceId()).thenReturn(virtualMachineId); when(vmInstanceDao.findById(virtualMachineId)).thenReturn(userVmMock); when(userVmMock.getHostId()).thenReturn(hostId); when(userVmMock.getInstanceName()).thenReturn(vmName); PowerMockito.doNothing().when(autoScaleManagerImplSpy).setPerformanceMonitorCommandParams(any(), any()); PerformanceMonitorCommand command = Mockito.mock(PerformanceMonitorCommand.class); PerformanceMonitorAnswer answer = new PerformanceMonitorAnswer(command, true, "result"); when(agentMgr.send(eq(hostId), any(PerformanceMonitorCommand.class))).thenReturn(answer); PowerMockito.doNothing().when(autoScaleManagerImplSpy).processPerformanceMonitorAnswer(any(), any(), any(), any(), any()); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEUP).when(autoScaleManagerImplSpy).getAutoscaleAction(any(), any(), any()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); autoScaleManagerImplSpy.checkNetScalerAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

Test Case ID #cloudstack_Test_204_2

Test Case Name: processPerformanceMonitorAnswer(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ @Test public void processPerformanceMonitorAnswer() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + // removed local mock; replaced with global field `groupTO` Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); Map<String, String> params = new HashMap<>(); params.put("con1", String.valueOf(scaleUpConditionId)); params.put("con2", String.valueOf(scaleDownConditionId)); double value1 = 50; double value2 = 100; String details = String.format("1.%s:%s,2.%s:%s", scaleUpCounterId, value1, scaleDownCounterId, value2); autoScaleManagerImplSpy.processPerformanceMonitorAnswer(countersMap, countersNumberMap, groupTO, params, details); Mockito.verify(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), eq(groupTO), eq(scaleUpCounterId), eq(scaleUpConditionId), eq(0L), eq(value1), eq(AutoScaleValueType.INSTANT_VM)); Mockito.verify(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), eq(groupTO), eq(scaleDownCounterId), eq(scaleDownConditionId), eq(0L), eq(value2), eq(AutoScaleValueType.INSTANT_VM)); }
Original Test Code (click to expand)
@Test public void processPerformanceMonitorAnswer() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); Map<String, String> params = new HashMap<>(); params.put("con1", String.valueOf(scaleUpConditionId)); params.put("con2", String.valueOf(scaleDownConditionId)); double value1 = 50; double value2 = 100; String details = String.format("1.%s:%s,2.%s:%s", scaleUpCounterId, value1, scaleDownCounterId, value2); autoScaleManagerImplSpy.processPerformanceMonitorAnswer(countersMap, countersNumberMap, groupTO, params, details); Mockito.verify(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), eq(groupTO), eq(scaleUpCounterId), eq(scaleUpConditionId), eq(0L), eq(value1), eq(AutoScaleValueType.INSTANT_VM)); Mockito.verify(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), eq(groupTO), eq(scaleDownCounterId), eq(scaleDownConditionId), eq(0L), eq(value2), eq(AutoScaleValueType.INSTANT_VM)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

Test Case ID #cloudstack_Test_204_3

Test Case Name: checkVirtualRouterAsGroupAndScaleUp(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ @Test public void checkVirtualRouterAsGroupAndScaleUp() { when(asVmGroupMock.getId()).thenReturn(vmGroupId); - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + // removed local mock; replaced with global field `groupTO` when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).updateCountersMap(any(), any(), any()); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEUP).when(autoScaleManagerImplSpy).getAutoscaleAction(any(), any(), any()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); autoScaleManagerImplSpy.checkVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); }
Original Test Code (click to expand)
@Test public void checkVirtualRouterAsGroupAndScaleUp() { when(asVmGroupMock.getId()).thenReturn(vmGroupId); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).updateCountersMap(any(), any(), any()); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEUP).when(autoScaleManagerImplSpy).getAutoscaleAction(any(), any(), any()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); autoScaleManagerImplSpy.checkVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

Test Case ID #cloudstack_Test_204_4

Test Case Name: checkVirtualRouterAsGroupAndScaleDown(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ @Test public void checkVirtualRouterAsGroupAndScaleDown() { when(asVmGroupMock.getId()).thenReturn(vmGroupId); - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + // removed local mock; replaced with global field `groupTO` when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).updateCountersMap(any(), any(), any()); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEDOWN).when(autoScaleManagerImplSpy).getAutoscaleAction(any(), any(), any()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).doScaleDown(vmGroupId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); autoScaleManagerImplSpy.checkVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleDown(vmGroupId); }
Original Test Code (click to expand)
@Test public void checkVirtualRouterAsGroupAndScaleDown() { when(asVmGroupMock.getId()).thenReturn(vmGroupId); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doReturn(true).when(autoScaleManagerImplSpy).updateCountersMap(any(), any(), any()); PowerMockito.doReturn(AutoScalePolicy.Action.SCALEDOWN).when(autoScaleManagerImplSpy).getAutoscaleAction(any(), any(), any()); PowerMockito.doNothing().when(autoScaleManagerImplSpy).doScaleDown(vmGroupId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); autoScaleManagerImplSpy.checkVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleDown(vmGroupId); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

Test Case ID #cloudstack_Test_204_5

Test Case Name: updateCountersMapWithInstantDataForCPU(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ @Test public void updateCountersMapWithInstantDataForCPU() { - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + // removed local mock; replaced with global field `groupTO` AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(counterDao.findById(counterId)).thenReturn(counterMock); when(counterMock.getSource()).thenReturn(Counter.Source.CPU); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); String key = scaleUpPolicyId + "-" + conditionId + "-" + counterId; countersMap.put(key, (double) 10); countersNumberMap.put(key, 1); double value = 0.5; autoScaleManagerImplSpy.updateCountersMapWithInstantData(countersMap, countersNumberMap, groupTO, counterId, conditionId, scaleUpPolicyId, value, AutoScaleValueType.INSTANT_VM); Assert.assertEquals(1, countersMap.size()); Assert.assertEquals(1, countersNumberMap.size()); Assert.assertEquals(60, (double) countersMap.get(key), 0); Assert.assertEquals(2, (long) countersNumberMap.get(key)); }
Original Test Code (click to expand)
@Test public void updateCountersMapWithInstantDataForCPU() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(counterDao.findById(counterId)).thenReturn(counterMock); when(counterMock.getSource()).thenReturn(Counter.Source.CPU); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); String key = scaleUpPolicyId + "-" + conditionId + "-" + counterId; countersMap.put(key, (double) 10); countersNumberMap.put(key, 1); double value = 0.5; autoScaleManagerImplSpy.updateCountersMapWithInstantData(countersMap, countersNumberMap, groupTO, counterId, conditionId, scaleUpPolicyId, value, AutoScaleValueType.INSTANT_VM); Assert.assertEquals(1, countersMap.size()); Assert.assertEquals(1, countersNumberMap.size()); Assert.assertEquals(60, (double) countersMap.get(key), 0); Assert.assertEquals(2, (long) countersNumberMap.get(key)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

Test Case ID #cloudstack_Test_204_6

Test Case Name: getVmStatsFromHosts(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + // removed local mock; replaced with global field `groupTO` PowerMockito.doReturn(hostAndVmIdsMap).when(autoScaleManagerImplSpy).getHostAndVmIdsMap(groupTO); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); Map<Long, VmStatsEntry> vmStatsById = new HashMap<>(); PowerMockito.doReturn(vmStatsById).doReturn(vmStatsById).when(autoScaleManagerImplSpy).getVmStatsByIdFromHost(anyLong(), any()); PowerMockito.doNothing().doNothing().when(autoScaleManagerImplSpy).processVmStatsByIdFromHost(any(), any(), any(), any()); autoScaleManagerImplSpy.getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy, times(2)).getVmStatsByIdFromHost(anyLong(), any()); Mockito.verify(autoScaleManagerImplSpy, times(2)).processVmStatsByIdFromHost(any(), any(), any(), any());
Original Test Code (click to expand)
@Test public void getVmStatsFromHosts() { Map<Long, List<Long>> hostAndVmIdsMap = new HashMap<>(); hostAndVmIdsMap.put(1L, Arrays.asList(2L, 3L)); hostAndVmIdsMap.put(4L, Arrays.asList(5L, 6L)); CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); PowerMockito.doReturn(hostAndVmIdsMap).when(autoScaleManagerImplSpy).getHostAndVmIdsMap(groupTO); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); Map<Long, VmStatsEntry> vmStatsById = new HashMap<>(); PowerMockito.doReturn(vmStatsById).doReturn(vmStatsById).when(autoScaleManagerImplSpy).getVmStatsByIdFromHost(anyLong(), any()); PowerMockito.doNothing().doNothing().when(autoScaleManagerImplSpy).processVmStatsByIdFromHost(any(), any(), any(), any()); autoScaleManagerImplSpy.getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy, times(2)).getVmStatsByIdFromHost(anyLong(), any()); Mockito.verify(autoScaleManagerImplSpy, times(2)).processVmStatsByIdFromHost(any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

Test Case ID #cloudstack_Test_204_7

Test Case Name: processGetAutoScaleMetricsAnswer(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: groupTO

Suggested Diff
@@ @Test public void processGetAutoScaleMetricsAnswer() { CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); - AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); + // removed local mock; replaced with global field `groupTO` PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); when(scaleUpCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleUpCounter.getId()).thenReturn(counterId); when(scaleDownCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounter.getId()).thenReturn(counterId); List<VirtualRouterAutoScale.AutoScaleMetrics> metrics = new ArrayList<>(); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.LB_AVERAGE_CONNECTIONS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, scaleDownPolicyId, 2L, counterId, 4)); List<VirtualRouterAutoScale.AutoScaleMetricsValue> values = new ArrayList<>(); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(0), AutoScaleValueType.INSTANT_VM, Double.valueOf(1))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(1), AutoScaleValueType.INSTANT_VM, Double.valueOf(2))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(2), AutoScaleValueType.INSTANT_VM, Double.valueOf(3))); autoScaleManagerImplSpy.processGetAutoScaleMetricsAnswer(groupTO, values, domainRouterId); Mockito.verify(asGroupStatisticsDao, times(2)).persist(any()); }
Original Test Code (click to expand)
@Test public void processGetAutoScaleMetricsAnswer() { CounterTO scaleUpCounter = Mockito.mock(CounterTO.class); CounterTO scaleDownCounter = Mockito.mock(CounterTO.class); Map<Long, List<CounterTO>> policyCountersMap = new HashMap<>(); policyCountersMap.put(scaleUpPolicyId, Arrays.asList(scaleUpCounter)); policyCountersMap.put(scaleDownPolicyId, Arrays.asList(scaleDownCounter)); AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); PowerMockito.doReturn(policyCountersMap).when(autoScaleManagerImplSpy).getPolicyCounters(groupTO); when(scaleUpCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleUpCounter.getId()).thenReturn(counterId); when(scaleDownCounter.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounter.getId()).thenReturn(counterId); List<VirtualRouterAutoScale.AutoScaleMetrics> metrics = new ArrayList<>(); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.LB_AVERAGE_CONNECTIONS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, scaleUpPolicyId, 2L, counterId, 4)); metrics.add(new VirtualRouterAutoScale.AutoScaleMetrics(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, scaleDownPolicyId, 2L, counterId, 4)); List<VirtualRouterAutoScale.AutoScaleMetricsValue> values = new ArrayList<>(); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(0), AutoScaleValueType.INSTANT_VM, Double.valueOf(1))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(1), AutoScaleValueType.INSTANT_VM, Double.valueOf(2))); values.add(new VirtualRouterAutoScale.AutoScaleMetricsValue(metrics.get(2), AutoScaleValueType.INSTANT_VM, Double.valueOf(3))); autoScaleManagerImplSpy.processGetAutoScaleMetricsAnswer(groupTO, values, domainRouterId); Mockito.verify(asGroupStatisticsDao, times(2)).persist(any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private AutoScaleVmGroupTO groupTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { groupTO = Mockito.mock(AutoScaleVmGroupTO.class); } // === Replace local variable in test with === groupTO

Mock Clone Instance #cloudstack_MCI_205

Reusable Method

private static SecurityRule createMockSecurityRule(SecurityRule.SecurityRuleType ruleType) { SecurityRule securityRule = mock(SecurityRule.class); when(securityRule.getRuleType()).thenReturn(ruleType); return securityRule; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_205_1

Test Case Name: addTungstenSecurityGroupEgressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: securityRule

Suggested Diff
--- original +++ refactored @@ - SecurityRule securityRule = mock(SecurityRule.class); + SecurityRule securityRule = createMockSecurityRule(SecurityRule.SecurityRuleType.EgressRule); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer getTungstenSecurityGroupAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); net.juniper.tungsten.api.types.SecurityGroup securityGroup = mock(net.juniper.tungsten.api.types.SecurityGroup.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); NicVO nicVO = mock(NicVO.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenSecurityGroupCommand.class), anyLong())).thenReturn(getTungstenSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(getTungstenSecurityGroupAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(getTungstenSecurityGroupAnswer.getApiObjectBase()).thenReturn(securityGroup); - when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.EgressRule); when(tungstenSecurityGroupRuleDao.findDefaultSecurityRule(anyLong(), anyString(), anyString())).thenReturn(tungstenSecurityGroupRuleVO); when(securityRule.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(securityRule.getEndPort()).thenReturn(NetUtils.PORT_RANGE_MIN); when(securityGroupVMMapDao.listVmIdsBySecurityGroup(anyLong())).thenReturn(List.of(1L)); when(nicDao.findDefaultNicForVM(anyLong())).thenReturn(nicVO); when(nicVO.getIPv4Address()).thenReturn("192.168.100.100"); when(nicVO.getIPv6Address()).thenReturn("fd00::1"); when(nicVO.getSecondaryIp()).thenReturn(true); when(nicSecIpDao.getSecondaryIpAddressesForNic(anyLong())).thenReturn(List.of("192.168.100.200")); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(securityRule.getAllowedNetworkId()).thenReturn(1L); assertTrue(tungstenService.addTungstenSecurityGroupRule(List.of(securityRule))); @@
Original Test Code (click to expand)
@Test public void addTungstenSecurityGroupEgressRuleTest() { SecurityRule securityRule = mock(SecurityRule.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer getTungstenSecurityGroupAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); net.juniper.tungsten.api.types.SecurityGroup securityGroup = mock(net.juniper.tungsten.api.types.SecurityGroup.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); NicVO nicVO = mock(NicVO.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenSecurityGroupCommand.class), anyLong())).thenReturn(getTungstenSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(getTungstenSecurityGroupAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(getTungstenSecurityGroupAnswer.getApiObjectBase()).thenReturn(securityGroup); when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.EgressRule); when(tungstenSecurityGroupRuleDao.findDefaultSecurityRule(anyLong(), anyString(), anyString())).thenReturn(tungstenSecurityGroupRuleVO); when(securityRule.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(securityRule.getEndPort()).thenReturn(NetUtils.PORT_RANGE_MIN); when(securityGroupVMMapDao.listVmIdsBySecurityGroup(anyLong())).thenReturn(List.of(1L)); when(nicDao.findDefaultNicForVM(anyLong())).thenReturn(nicVO); when(nicVO.getIPv4Address()).thenReturn("192.168.100.100"); when(nicVO.getIPv6Address()).thenReturn("fd00::1"); when(nicVO.getSecondaryIp()).thenReturn(true); when(nicSecIpDao.getSecondaryIpAddressesForNic(anyLong())).thenReturn(List.of("192.168.100.200")); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(securityRule.getAllowedNetworkId()).thenReturn(1L); assertTrue(tungstenService.addTungstenSecurityGroupRule(List.of(securityRule))); }
Reusable Method for MCI (click to expand)
private static SecurityRule createMockSecurityRule(SecurityRule.SecurityRuleType ruleType) { SecurityRule securityRule = mock(SecurityRule.class); when(securityRule.getRuleType()).thenReturn(ruleType); return securityRule; }

Test Case ID #cloudstack_Test_205_2

Test Case Name: addTungstenSecurityGroupIngressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: securityRule

Suggested Diff
--- original +++ refactored @@ @Test public void addTungstenSecurityGroupIngressRuleTest() { - SecurityRule securityRule = mock(SecurityRule.class); + SecurityRule securityRule = createMockSecurityRule(SecurityRule.SecurityRuleType.IngressRule); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer getTungstenSecurityGroupAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); net.juniper.tungsten.api.types.SecurityGroup securityGroup = mock(net.juniper.tungsten.api.types.SecurityGroup.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenSecurityGroupCommand.class), anyLong())).thenReturn(getTungstenSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(getTungstenSecurityGroupAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(getTungstenSecurityGroupAnswer.getApiObjectBase()).thenReturn(securityGroup); - when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.IngressRule); when(securityRule.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(securityRule.getEndPort()).thenReturn(NetUtils.PORT_RANGE_MIN); when(securityRule.getAllowedNetworkId()).thenReturn(null); assertTrue(tungstenService.addTungstenSecurityGroupRule(List.of(securityRule))); } @@
Original Test Code (click to expand)
@Test public void addTungstenSecurityGroupIngressRuleTest() { SecurityRule securityRule = mock(SecurityRule.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer getTungstenSecurityGroupAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); net.juniper.tungsten.api.types.SecurityGroup securityGroup = mock(net.juniper.tungsten.api.types.SecurityGroup.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenFabricUtils.sendTungstenCommand(any(GetTungstenSecurityGroupCommand.class), anyLong())).thenReturn(getTungstenSecurityGroupAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(getTungstenSecurityGroupAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(getTungstenSecurityGroupAnswer.getApiObjectBase()).thenReturn(securityGroup); when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.IngressRule); when(securityRule.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(securityRule.getEndPort()).thenReturn(NetUtils.PORT_RANGE_MIN); when(securityRule.getAllowedNetworkId()).thenReturn(null); assertTrue(tungstenService.addTungstenSecurityGroupRule(List.of(securityRule))); }
Reusable Method for MCI (click to expand)
private static SecurityRule createMockSecurityRule(SecurityRule.SecurityRuleType ruleType) { SecurityRule securityRule = mock(SecurityRule.class); when(securityRule.getRuleType()).thenReturn(ruleType); return securityRule; }

Test Case ID #cloudstack_Test_205_3

Test Case Name: removeTungstenSecurityGroupEgressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: securityRule

Suggested Diff
--- original +++ refactored @@ - SecurityRule securityRule = mock(SecurityRule.class); + SecurityRule securityRule = createMockSecurityRule(SecurityRule.SecurityRuleType.EgressRule); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); NicVO nicVO = mock(NicVO.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); - when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.EgressRule); - when(securityRule.getType()).thenReturn("egress"); + when(securityRule.getType()).thenReturn("egress"); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); - when(securityRule.getAllowedNetworkId()).thenReturn(1L); + when(securityRule.getAllowedNetworkId()).thenReturn(1L); when(securityGroupVMMapDao.listVmIdsBySecurityGroup(anyLong())).thenReturn(List.of(1L)); when(nicDao.findDefaultNicForVM(anyLong())).thenReturn(nicVO); when(tungstenSecurityGroupRuleDao.expunge(anyLong())).thenReturn(true); when(nicVO.getIPv4Address()).thenReturn("192.168.100.100"); when(nicVO.getIPv6Address()).thenReturn("fd00::1"); when(nicVO.getSecondaryIp()).thenReturn(true); when(nicSecIpDao.getSecondaryIpAddressesForNic(anyLong())).thenReturn(List.of("192.168.100.200")); when(tungstenSecurityGroupRuleDao.findBySecurityGroupAndRuleTypeAndRuleTarget(anyLong(), anyString(), anyString())).thenReturn(tungstenSecurityGroupRuleVO); assertTrue(tungstenService.removeTungstenSecurityGroupRule(securityRule)); @@
Original Test Code (click to expand)
@Test public void removeTungstenSecurityGroupEgressRuleTest() { SecurityRule securityRule = mock(SecurityRule.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); NicVO nicVO = mock(NicVO.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.EgressRule); when(securityRule.getType()).thenReturn("egress"); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(securityRule.getAllowedNetworkId()).thenReturn(1L); when(securityGroupVMMapDao.listVmIdsBySecurityGroup(anyLong())).thenReturn(List.of(1L)); when(nicDao.findDefaultNicForVM(anyLong())).thenReturn(nicVO); when(tungstenSecurityGroupRuleDao.expunge(anyLong())).thenReturn(true); when(nicVO.getIPv4Address()).thenReturn("192.168.100.100"); when(nicVO.getIPv6Address()).thenReturn("fd00::1"); when(nicVO.getSecondaryIp()).thenReturn(true); when(nicSecIpDao.getSecondaryIpAddressesForNic(anyLong())).thenReturn(List.of("192.168.100.200")); when(tungstenSecurityGroupRuleDao.findBySecurityGroupAndRuleTypeAndRuleTarget(anyLong(), anyString(), anyString())).thenReturn(tungstenSecurityGroupRuleVO); assertTrue(tungstenService.removeTungstenSecurityGroupRule(securityRule)); }
Reusable Method for MCI (click to expand)
private static SecurityRule createMockSecurityRule(SecurityRule.SecurityRuleType ruleType) { SecurityRule securityRule = mock(SecurityRule.class); when(securityRule.getRuleType()).thenReturn(ruleType); return securityRule; }

Test Case ID #cloudstack_Test_205_4

Test Case Name: removeTungstenSecurityGroupIngressRuleTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: securityRule

Suggested Diff
--- original +++ refactored @@ public void removeTungstenSecurityGroupIngressRuleTest() { - SecurityRule securityRule = mock(SecurityRule.class); + SecurityRule securityRule = createMockSecurityRule(SecurityRule.SecurityRuleType.IngressRule); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); - when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.IngressRule); - when(securityRule.getType()).thenReturn("ingress"); + when(securityRule.getType()).thenReturn("ingress"); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); - when(securityRule.getAllowedNetworkId()).thenReturn(null); + when(securityRule.getAllowedNetworkId()).thenReturn(null); assertTrue(tungstenService.removeTungstenSecurityGroupRule(securityRule)); @@
Original Test Code (click to expand)
@Test public void removeTungstenSecurityGroupIngressRuleTest() { SecurityRule securityRule = mock(SecurityRule.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(securityRule.getRuleType()).thenReturn(SecurityRule.SecurityRuleType.IngressRule); when(securityRule.getType()).thenReturn("ingress"); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(securityRule.getAllowedNetworkId()).thenReturn(null); assertTrue(tungstenService.removeTungstenSecurityGroupRule(securityRule)); }
Reusable Method for MCI (click to expand)
private static SecurityRule createMockSecurityRule(SecurityRule.SecurityRuleType ruleType) { SecurityRule securityRule = mock(SecurityRule.class); when(securityRule.getRuleType()).thenReturn(ruleType); return securityRule; }

Mock Clone Instance #cloudstack_MCI_206

Reusable Method

private static CreateNetworkCmd createMockCreateNetworkCmd(String ip4Dns1Return) { CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns1Return); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_206_1

Test Case Name: testCreateL2NetworkDnsFailure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ registerCallContext(); - CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); - prepareCreateNetworkDnsMocks(cmd, Network.GuestType.L2, false, false, true); - Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns[0]); + CreateNetworkCmd cmd = createMockCreateNetworkCmd(ip4Dns[0]); + prepareCreateNetworkDnsMocks(cmd, Network.GuestType.L2, false, false, true); try { service.createGuestNetwork(cmd); } catch (InsufficientCapacityException | ResourceAllocationException e) { Assert.fail(String.format("failure with exception: %s", e.getMessage())); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCreateL2NetworkDnsFailure() { registerCallContext(); CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); prepareCreateNetworkDnsMocks(cmd, Network.GuestType.L2, false, false, true); Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns[0]); try { service.createGuestNetwork(cmd); } catch (InsufficientCapacityException | ResourceAllocationException e) { Assert.fail(String.format("failure with exception: %s", e.getMessage())); } }
Reusable Method for MCI (click to expand)
private static CreateNetworkCmd createMockCreateNetworkCmd(String ip4Dns1Return) { CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns1Return); return cmd; }

Test Case ID #cloudstack_Test_206_2

Test Case Name: testCreateNetworkDnsVpcFailure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ registerCallContext(); - CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); - prepareCreateNetworkDnsMocks(cmd, Network.GuestType.Isolated, false, false, true); - Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns[0]); + CreateNetworkCmd cmd = createMockCreateNetworkCmd(ip4Dns[0]); + prepareCreateNetworkDnsMocks(cmd, Network.GuestType.Isolated, false, false, true); try { service.createGuestNetwork(cmd); } catch (InsufficientCapacityException | ResourceAllocationException e) { Assert.fail(String.format("failure with exception: %s", e.getMessage())); } }
Original Test Code (click to expand)
@Test public void testCreateNetworkDnsVpcFailure() { registerCallContext(); CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); prepareCreateNetworkDnsMocks(cmd, Network.GuestType.Isolated, false, false, true); Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns[0]); try { service.createGuestNetwork(cmd); } catch (InsufficientCapacityException | ResourceAllocationException e) { Assert.fail(String.format("failure with exception: %s", e.getMessage())); } }
Reusable Method for MCI (click to expand)
private static CreateNetworkCmd createMockCreateNetworkCmd(String ip4Dns1Return) { CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns1Return); return cmd; }

Test Case ID #cloudstack_Test_206_3

Test Case Name: testCreateNetworkDnsOfferingServiceFailure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ registerCallContext(); - CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); - Mockito.when(cmd.getDomainId()).thenReturn(null); + CreateNetworkCmd cmd = createMockCreateNetworkCmd(ip4Dns[0]); Mockito.when(cmd.getProjectId()).thenReturn(null); prepareCreateNetworkDnsMocks(cmd, Network.GuestType.Isolated, false, false, false); - Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns[0]); try { service.createGuestNetwork(cmd); } catch (InsufficientCapacityException | ResourceAllocationException e) { Assert.fail(String.format("failure with exception: %s", e.getMessage())); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCreateNetworkDnsOfferingServiceFailure() { registerCallContext(); CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); Mockito.when(cmd.getDomainId()).thenReturn(null); Mockito.when(cmd.getProjectId()).thenReturn(null); prepareCreateNetworkDnsMocks(cmd, Network.GuestType.Isolated, false, false, false); Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns[0]); try { service.createGuestNetwork(cmd); } catch (InsufficientCapacityException | ResourceAllocationException e) { Assert.fail(String.format("failure with exception: %s", e.getMessage())); } }
Reusable Method for MCI (click to expand)
private static CreateNetworkCmd createMockCreateNetworkCmd(String ip4Dns1Return) { CreateNetworkCmd cmd = Mockito.mock(CreateNetworkCmd.class); Mockito.when(cmd.getIp4Dns1()).thenReturn(ip4Dns1Return); return cmd; }

Mock Clone Instance #cloudstack_MCI_207

Reusable Method

private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_207_1

Test Case Name: testExecuteUpdateObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); @@
Original Test Code (click to expand)
@Test public void testExecuteUpdateObject() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_2

Test Case Name: testExecuteUpdateObjectWithParameters(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); @@
Original Test Code (click to expand)
@Test public void testExecuteUpdateObjectWithParameters() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_3

Test Case Name: testExecuteCreateObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); + when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath"); assertThat(object, notNullValue()); assertThat(object, equalTo(newObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteCreateObject() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath"); assertThat(object, notNullValue()); assertThat(object, equalTo(newObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_4

Test Case Name: testExecuteCreateObjectWithParameters(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); + when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(newObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteCreateObjectWithParameters() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(newObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_5

Test Case Name: testExecuteDeleteObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final HttpEntity entity = mock(HttpEntity.class); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getEntity()).thenReturn(entity); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); + when(response.getEntity()).thenReturn(entity); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeDeleteObject("/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("DELETE"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteDeleteObject() throws Exception { final HttpEntity entity = mock(HttpEntity.class); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(entity); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeDeleteObject("/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("DELETE"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_6

Test Case Name: testExecuteRetrieveObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final TestPojo existingObject = new TestPojo(); existingObject.setField("existingValue"); final String newObjectJson = gson.toJson(existingObject); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); + when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath"); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteRetrieveObject() throws Exception { final TestPojo existingObject = new TestPojo(); existingObject.setField("existingValue"); final String newObjectJson = gson.toJson(existingObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath"); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_7

Test Case Name: testExecuteRetrieveObjectWithParameters(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final TestPojo existingObject = new TestPojo(); existingObject.setField("existingValue"); final String newObjectJson = gson.toJson(existingObject); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); + when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteRetrieveObjectWithParameters() throws Exception { final TestPojo existingObject = new TestPojo(); existingObject.setField("existingValue"); final String newObjectJson = gson.toJson(existingObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_8

Test Case Name: testCustomDeserializerTypeMismatch(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ @Test(expected = JsonParseException.class) public void testCustomDeserializerTypeMismatch() throws Exception { - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("[{somethig_not_type : \"WrongType\"}]")); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).classToDeserializerEntry(TestPojo.class, new TestPojoDeserializer()).build(); connector.executeRetrieveObject(TestPojo.class, "/somepath"); } @@
Original Test Code (click to expand)
@Test(expected = JsonParseException.class) public void testCustomDeserializerTypeMismatch() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("[{somethig_not_type : \"WrongType\"}]")); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).classToDeserializerEntry(TestPojo.class, new TestPojoDeserializer()).build(); connector.executeRetrieveObject(TestPojo.class, "/somepath"); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Test Case ID #cloudstack_Test_207_9

Test Case Name: testCustomDeserializerForCustomLists(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); + final CloseableHttpResponse response = createMockCloseableHttpResponse(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("{results: [{field : \"SomeValue\"}], results_count: 1}")); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); @@
Original Test Code (click to expand)
@Test public void testCustomDeserializerForCustomLists() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("{results: [{field : \"SomeValue\"}], results_count: 1}")); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final Class<? extends CollectionType> clazzListOfTestPojo = new ObjectMapper().getTypeFactory().constructCollectionType(List.class, TestPojo.class).getClass(); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).classToDeserializerEntry(clazzListOfTestPojo, new CustomListDeserializer<TestPojoDeserializer>()).build(); connector.executeRetrieveObject(TestPojo.class, "/somepath"); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(StatusLine HTTP_200_STATUS_LINE) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); return response; }

Mock Clone Instance #cloudstack_MCI_208

Reusable Method

public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_208_1

Test Case Name: getSnhItfReqTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); @@
Original Test Code (click to expand)
@Test public void getSnhItfReqTest() throws Exception { Document document = mock(Document.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_2

Test Case Name: getSnhItfReqWithParserConfigurationExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(HttpClients.createDefault()).thenReturn(httpClient); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenThrow(ParserConfigurationException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); @@
Original Test Code (click to expand)
@Test public void getSnhItfReqWithParserConfigurationExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenThrow(ParserConfigurationException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_3

Test Case Name: getSnhItfReqWithSAXExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenThrow(SAXException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); @@
Original Test Code (click to expand)
@Test public void getSnhItfReqWithSAXExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenThrow(SAXException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_4

Test Case Name: addPortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addPort(port)); }
Original Test Code (click to expand)
@Test public void addPortTest() throws Exception { Port port = mock(Port.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addPort(port)); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_5

Test Case Name: addPortWithFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{error:404}"); assertFalse(vRouterApiConnector.addPort(port)); }
Original Test Code (click to expand)
@Test public void addPortWithFailTest() throws Exception { Port port = mock(Port.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{error:404}"); assertFalse(vRouterApiConnector.addPort(port)); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_6

Test Case Name: deletePortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deletePort("948f421c-edde-4518-a391-09299cc25dc2")); @@
Original Test Code (click to expand)
@Test public void deletePortTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deletePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_7

Test Case Name: enablePortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
@@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.enablePort("948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void enablePortTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.enablePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_8

Test Case Name: disablePortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.disablePort("948f421c-edde-4518-a391-09299cc25dc2")); @@
Original Test Code (click to expand)
@Test public void disablePortTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.disablePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_9

Test Case Name: addGatewayTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addGateway(Arrays.asList(gateway1, gateway2))); @@
Original Test Code (click to expand)
@Test public void addGatewayTest() throws Exception { Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addGateway(Arrays.asList(gateway1, gateway2))); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Test Case ID #cloudstack_Test_208_10

Test Case Name: deleteGatewayTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: closeableHttpResponse

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); + CloseableHttpResponse closeableHttpResponse = MockCloseableHttpResponse.createMockCloseableHttpResponse(httpEntity); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); - when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deleteGateway(Arrays.asList(gateway1, gateway2))); @@
Original Test Code (click to expand)
@Test public void deleteGatewayTest() throws Exception { Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deleteGateway(Arrays.asList(gateway1, gateway2))); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpResponse { public static CloseableHttpResponse createMockCloseableHttpResponse(HttpEntity httpEntity) { CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); return closeableHttpResponse; } }

Mock Clone Instance #cloudstack_MCI_209

Reusable Method

private static CloseableHttpResponse createMockCloseableHttpResponse() throws Exception { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); return response; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_209_1

Test Case Name: testCreateSecurityProfile(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\nicira\NiciraNvpApiTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ public void testCreateSecurityProfile() throws Exception { - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); - when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); + final CloseableHttpResponse response = createMockCloseableHttpResponse(); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); final SecurityProfile actualSecProfile = api.createSecurityProfile(new SecurityProfile()); assertThat("Wrong Uuid in the newly created SecurityProfile", actualSecProfile, hasProperty("uuid", equalTo(UUID))); assertThat("Wrong Href in the newly created SecurityProfile", actualSecProfile, hasProperty("href", equalTo(HREF))); assertThat("Wrong Schema in the newly created SecurityProfile", actualSecProfile, hasProperty("schema", equalTo(SCHEMA))); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX), any(HttpClientContext.class)); @@
Original Test Code (click to expand)
@Test public void testCreateSecurityProfile() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); final SecurityProfile actualSecProfile = api.createSecurityProfile(new SecurityProfile()); assertThat("Wrong Uuid in the newly created SecurityProfile", actualSecProfile, hasProperty("uuid", equalTo(UUID))); assertThat("Wrong Href in the newly created SecurityProfile", actualSecProfile, hasProperty("href", equalTo(HREF))); assertThat("Wrong Schema in the newly created SecurityProfile", actualSecProfile, hasProperty("schema", equalTo(SCHEMA))); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse() throws Exception { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); return response; }

Test Case ID #cloudstack_Test_209_2

Test Case Name: testUpdateSecurityProfile(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\nicira\NiciraNvpApiTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ @Test public void testUpdateSecurityProfile() throws Exception { - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); - when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); + final CloseableHttpResponse response = createMockCloseableHttpResponse(); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); api.updateSecurityProfile(new SecurityProfile(), UUID); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX + "/" + UUID), any(HttpClientContext.class)); }
Original Test Code (click to expand)
@Test public void testUpdateSecurityProfile() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); api.updateSecurityProfile(new SecurityProfile(), UUID); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX + "/" + UUID), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse() throws Exception { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); return response; }

Test Case ID #cloudstack_Test_209_3

Test Case Name: testDeleteSecurityProfile(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\nicira\NiciraNvpApiTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ @Test public void testDeleteSecurityProfile() throws Exception { - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); - when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); + final CloseableHttpResponse response = createMockCloseableHttpResponse(); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); api.deleteSecurityProfile(UUID); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("DELETE"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX + "/" + UUID), any(HttpClientContext.class)); } @@
Original Test Code (click to expand)
@Test public void testDeleteSecurityProfile() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); api.deleteSecurityProfile(UUID); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("DELETE"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX + "/" + UUID), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse() throws Exception { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_JSON_RESPONSE)); when(response.getStatusLine()).thenReturn(HTTP_201_REPSONSE); return response; }

Mock Clone Instance #cloudstack_MCI_210

Reusable Method

private static CloseableHttpResponse createMockCloseableHttpResponse(String secProfileListJsonResponse, StatusLine http200Response) throws UnsupportedEncodingException { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(secProfileListJsonResponse)); when(response.getStatusLine()).thenReturn(http200Response); return response; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_210_1

Test Case Name: testFindSecurityProfile(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\nicira\NiciraNvpApiTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ @Test @SuppressWarnings("unchecked") public void testFindSecurityProfile() throws Exception { - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_200_REPSONSE); - when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_LIST_JSON_RESPONSE)); + final CloseableHttpResponse response = createMockCloseableHttpResponse(SEC_PROFILE_LIST_JSON_RESPONSE, HTTP_200_REPSONSE); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); final List<SecurityProfile> actualProfiles = api.findSecurityProfile(); assertThat("Wrong number of results", actualProfiles, hasSize(2)); assertThat("Wrong Uuid in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("uuid", equalTo(UUID)), hasProperty("uuid", equalTo(UUID2)))); assertThat("Wrong HREF in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("href", equalTo(HREF)), hasProperty("href", equalTo(HREF2)))); assertThat("Wrong Schema in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("schema", equalTo(SCHEMA)), hasProperty("schema", equalTo(SCHEMA2)))); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQuery("fields=*"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX), any(HttpClientContext.class)); } @@
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") public void testFindSecurityProfile() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_REPSONSE); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_LIST_JSON_RESPONSE)); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); final List<SecurityProfile> actualProfiles = api.findSecurityProfile(); assertThat("Wrong number of results", actualProfiles, hasSize(2)); assertThat("Wrong Uuid in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("uuid", equalTo(UUID)), hasProperty("uuid", equalTo(UUID2)))); assertThat("Wrong HREF in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("href", equalTo(HREF)), hasProperty("href", equalTo(HREF2)))); assertThat("Wrong Schema in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("schema", equalTo(SCHEMA)), hasProperty("schema", equalTo(SCHEMA2)))); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQuery("fields=*"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(String secProfileListJsonResponse, StatusLine http200Response) throws UnsupportedEncodingException { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(secProfileListJsonResponse)); when(response.getStatusLine()).thenReturn(http200Response); return response; }

Test Case ID #cloudstack_Test_210_2

Test Case Name: testFindSecurityProfileByUuid(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\nicira\NiciraNvpApiTest.java)

Mock Object Variable Name: response

Suggested Diff
--- original +++ refactored @@ public void testFindSecurityProfileByUuid() throws Exception { - final CloseableHttpResponse response = mock(CloseableHttpResponse.class); - when(response.getStatusLine()).thenReturn(HTTP_200_REPSONSE); - when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_LIST_JSON_RESPONSE)); + final CloseableHttpResponse response = createMockCloseableHttpResponse(SEC_PROFILE_LIST_JSON_RESPONSE, HTTP_200_REPSONSE); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); final List<SecurityProfile> actualProfiles = api.findSecurityProfile(UUID); assertThat("Wrong number of results", actualProfiles, hasSize(2)); assertThat("Wrong Uuid in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("uuid", equalTo(UUID)), hasProperty("uuid", equalTo(UUID2)))); assertThat("Wrong HREF in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("href", equalTo(HREF)), hasProperty("href", equalTo(HREF2)))); assertThat("Wrong Schema in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("schema", equalTo(SCHEMA)), hasProperty("schema", equalTo(SCHEMA2)))); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("uuid=" + UUID), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("fields=*"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX), any(HttpClientContext.class)); }
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") public void testFindSecurityProfileByUuid() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_REPSONSE); when(response.getEntity()).thenReturn(new StringEntity(SEC_PROFILE_LIST_JSON_RESPONSE)); final CloseableHttpClient httpClient = spy(HttpClientHelper.createHttpClient(2)); doReturn(response).when(httpClient).execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class)); final NiciraNvpApi api = buildApi(httpClient); final List<SecurityProfile> actualProfiles = api.findSecurityProfile(UUID); assertThat("Wrong number of results", actualProfiles, hasSize(2)); assertThat("Wrong Uuid in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("uuid", equalTo(UUID)), hasProperty("uuid", equalTo(UUID2)))); assertThat("Wrong HREF in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("href", equalTo(HREF)), hasProperty("href", equalTo(HREF2)))); assertThat("Wrong Schema in the newly created SecurityProfile", actualProfiles, Matchers.<SecurityProfile>contains(hasProperty("schema", equalTo(SCHEMA)), hasProperty("schema", equalTo(SCHEMA2)))); verify(response, times(1)).close(); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("uuid=" + UUID), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("fields=*"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPathMatcher.aPath(NiciraConstants.SEC_PROFILE_URI_PREFIX), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpResponse createMockCloseableHttpResponse(String secProfileListJsonResponse, StatusLine http200Response) throws UnsupportedEncodingException { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(secProfileListJsonResponse)); when(response.getStatusLine()).thenReturn(http200Response); return response; }

Mock Clone Instance #cloudstack_MCI_211

Reusable Method

// === Declare in class scope === private ListUnmanagedInstancesCmd cmd; // === Add to @BeforeEach method === @BeforeEach public void setUp() { cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); } // === Replace local variable in test with === cmd;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_211_1

Test Case Name: listUnmanagedInstancesTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\vm\UnmanagedVMsManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ @Test public void listUnmanagedInstancesTest() { - ListUnmanagedInstancesCmd cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); + // removed local mock; replaced with global field `cmd` unmanagedVMsManager.listUnmanagedInstances(cmd); }
Original Test Code (click to expand)
@Test public void listUnmanagedInstancesTest() { ListUnmanagedInstancesCmd cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); unmanagedVMsManager.listUnmanagedInstances(cmd); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ListUnmanagedInstancesCmd cmd; // === Add to @BeforeEach method === @BeforeEach public void setUp() { cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); } // === Replace local variable in test with === cmd;

Test Case ID #cloudstack_Test_211_2

Test Case Name: listUnmanagedInstancesInvalidHypervisorTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\vm\UnmanagedVMsManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ @Test(expected = InvalidParameterValueException.class) public void listUnmanagedInstancesInvalidHypervisorTest() { - ListUnmanagedInstancesCmd cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); + // removed local mock; replaced with global field `cmd` ClusterVO cluster = new ClusterVO(1, 1, "Cluster"); cluster.setHypervisorType(Hypervisor.HypervisorType.KVM.toString()); when(clusterDao.findById(Mockito.anyLong())).thenReturn(cluster); unmanagedVMsManager.listUnmanagedInstances(cmd); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void listUnmanagedInstancesInvalidHypervisorTest() { ListUnmanagedInstancesCmd cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); ClusterVO cluster = new ClusterVO(1, 1, "Cluster"); cluster.setHypervisorType(Hypervisor.HypervisorType.KVM.toString()); when(clusterDao.findById(Mockito.anyLong())).thenReturn(cluster); unmanagedVMsManager.listUnmanagedInstances(cmd); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ListUnmanagedInstancesCmd cmd; // === Add to @BeforeEach method === @BeforeEach public void setUp() { cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); } // === Replace local variable in test with === cmd;

Test Case ID #cloudstack_Test_211_3

Test Case Name: listUnmanagedInstancesInvalidCallerTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\org\apache\cloudstack\vm\UnmanagedVMsManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ @Test(expected = PermissionDeniedException.class) public void listUnmanagedInstancesInvalidCallerTest() { CallContext.unregister(); AccountVO account = new AccountVO("user", 1L, "", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, account); - ListUnmanagedInstancesCmd cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); + // removed local mock; replaced with global field `cmd` unmanagedVMsManager.listUnmanagedInstances(cmd); }
Original Test Code (click to expand)
@Test(expected = PermissionDeniedException.class) public void listUnmanagedInstancesInvalidCallerTest() { CallContext.unregister(); AccountVO account = new AccountVO("user", 1L, "", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, account); ListUnmanagedInstancesCmd cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); unmanagedVMsManager.listUnmanagedInstances(cmd); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private ListUnmanagedInstancesCmd cmd; // === Add to @BeforeEach method === @BeforeEach public void setUp() { cmd = Mockito.mock(ListUnmanagedInstancesCmd.class); } // === Replace local variable in test with === cmd;

Mock Clone Instance #cloudstack_MCI_212

Reusable Method

private static DataCenter createMockDataCenter() { DataCenter dataCenter = mock(DataCenter.class); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); return dataCenter; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_212_1

Test Case Name: addTungstenNicSecondaryIpAddressTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenter

Suggested Diff
--- original +++ refactored @@ Network network = mock(Network.class); - DataCenter dataCenter = mock(DataCenter.class); + DataCenter dataCenter = createMockDataCenter(); Nic nic = mock(Nic.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); SecurityGroupRuleVO securityGroupRuleVO = mock(SecurityGroupRuleVO.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer addTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(NicSecondaryIp.class), anyLong())).thenReturn(nicSecondaryIp); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(entityMgr.findById(eq(Nic.class), anyLong())).thenReturn(nic); when(nicSecondaryIp.getIp4Address()).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(addTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(addTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); - when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); when(securityGroupRuleDao.listByAllowedSecurityGroupId(anyLong())).thenReturn(List.of(securityGroupRuleVO)); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(securityGroupRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); assertTrue(tungstenService.addTungstenNicSecondaryIpAddress(1L)); @@
Original Test Code (click to expand)
@Test public void addTungstenNicSecondaryIpAddressTest() { NicSecondaryIp nicSecondaryIp = mock(NicSecondaryIp.class); Network network = mock(Network.class); DataCenter dataCenter = mock(DataCenter.class); Nic nic = mock(Nic.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); SecurityGroupRuleVO securityGroupRuleVO = mock(SecurityGroupRuleVO.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); TungstenProviderVO tungstenProviderVO = mock(TungstenProviderVO.class); TungstenAnswer addTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenAnswer addTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(NicSecondaryIp.class), anyLong())).thenReturn(nicSecondaryIp); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(entityMgr.findById(eq(Nic.class), anyLong())).thenReturn(nic); when(nicSecondaryIp.getIp4Address()).thenReturn("192.168.100.100"); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(addTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(AddTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(addTungstenSecurityGroupRuleAnswer); when(addTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(addTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(securityGroupManager.getSecurityGroupsForVm(anyLong())).thenReturn(List.of(securityGroupVO)); when(securityGroupRuleDao.listByAllowedSecurityGroupId(anyLong())).thenReturn(List.of(securityGroupRuleVO)); when(tungstenSecurityGroupRuleDao.persist(any(TungstenSecurityGroupRuleVO.class))).thenReturn(tungstenSecurityGroupRuleVO); when(securityGroupRuleVO.getProtocol()).thenReturn(NetUtils.ALL_PROTO); when(tungstenProviderDao.findAll()).thenReturn(List.of(tungstenProviderVO)); assertTrue(tungstenService.addTungstenNicSecondaryIpAddress(1L)); }
Reusable Method for MCI (click to expand)
private static DataCenter createMockDataCenter() { DataCenter dataCenter = mock(DataCenter.class); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); return dataCenter; }

Test Case ID #cloudstack_Test_212_2

Test Case Name: removeTungstenNicSecondaryIpAddressTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\service\TungstenServiceImplTest.java)

Mock Object Variable Name: dataCenter

Suggested Diff
--- original +++ refactored @@ NicSecondaryIpVO nicSecondaryIpVO = mock(NicSecondaryIpVO.class); Network network = mock(Network.class); - DataCenter dataCenter = mock(DataCenter.class); + DataCenter dataCenter = createMockDataCenter(); TungstenAnswer removeTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(removeTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(removeTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); - when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(tungstenSecurityGroupRuleDao.listByRuleTarget(anyString())).thenReturn(List.of(tungstenSecurityGroupRuleVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenSecurityGroupRuleDao.expunge(anyLong())).thenReturn(true); when(nicSecondaryIpVO.getIp4Address()).thenReturn("192.168.100.100"); assertTrue(tungstenService.removeTungstenNicSecondaryIpAddress(nicSecondaryIpVO)); @@
Original Test Code (click to expand)
@Test public void removeTungstenNicSecondaryIpAddressTest() { NicSecondaryIpVO nicSecondaryIpVO = mock(NicSecondaryIpVO.class); Network network = mock(Network.class); DataCenter dataCenter = mock(DataCenter.class); TungstenAnswer removeTungstenSecondaryIpAddressAnswer = mock(TungstenAnswer.class); TungstenSecurityGroupRuleVO tungstenSecurityGroupRuleVO = mock(TungstenSecurityGroupRuleVO.class); SecurityGroupVO securityGroupVO = mock(SecurityGroupVO.class); TungstenAnswer removeTungstenSecurityGroupRuleAnswer = mock(TungstenAnswer.class); when(entityMgr.findById(eq(Network.class), anyLong())).thenReturn(network); when(entityMgr.findById(eq(DataCenter.class), anyLong())).thenReturn(dataCenter); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecondaryIpAddressCommand.class), anyLong())).thenReturn(removeTungstenSecondaryIpAddressAnswer); when(tungstenFabricUtils.sendTungstenCommand(any(RemoveTungstenSecurityGroupRuleCommand.class), anyLong())).thenReturn(removeTungstenSecurityGroupRuleAnswer); when(removeTungstenSecondaryIpAddressAnswer.getResult()).thenReturn(true); when(removeTungstenSecurityGroupRuleAnswer.getResult()).thenReturn(true); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); when(network.getGuestType()).thenReturn(Network.GuestType.Shared); when(tungstenSecurityGroupRuleDao.listByRuleTarget(anyString())).thenReturn(List.of(tungstenSecurityGroupRuleVO)); when(securityGroupDao.findById(anyLong())).thenReturn(securityGroupVO); when(tungstenSecurityGroupRuleDao.expunge(anyLong())).thenReturn(true); when(nicSecondaryIpVO.getIp4Address()).thenReturn("192.168.100.100"); assertTrue(tungstenService.removeTungstenNicSecondaryIpAddress(nicSecondaryIpVO)); }
Reusable Method for MCI (click to expand)
private static DataCenter createMockDataCenter() { DataCenter dataCenter = mock(DataCenter.class); when(dataCenter.isSecurityGroupEnabled()).thenReturn(true); return dataCenter; }

Mock Clone Instance #cloudstack_MCI_213

Reusable Method

// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_213_1

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ DeployDestination dest = mock(DeployDestination.class); - DataCenter dc = mock(DataCenter.class); + // removed local mock; replaced with global field `dc` when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true");
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc;

Test Case ID #cloudstack_Test_213_2

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ DeployDestination dest = mock(DeployDestination.class); - DataCenter dc = mock(DataCenter.class); + // removed local mock; replaced with global field `dc` when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true");
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc;

Test Case ID #cloudstack_Test_213_3

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ DeployDestination dest = mock(DeployDestination.class); - DataCenter dc = mock(DataCenter.class); + // removed local mock; replaced with global field `dc` when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class);
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc;

Mock Clone Instance #cloudstack_MCI_214

Reusable Method

// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc

The refactoring details in each test cases


Test Case ID #cloudstack_Test_214_1

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ final DeployDestination dest = mock(DeployDestination.class); - final DataCenter dc = mock(DataCenter.class); + // removed local mock; replaced with global field `dc` when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class);
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc

Test Case ID #cloudstack_Test_214_2

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ final DeployDestination dest = mock(DeployDestination.class); - final DataCenter dc = mock(DataCenter.class); + // removed local mock; replaced with global field `dc` when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost);
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc

Test Case ID #cloudstack_Test_214_3

Test Case Name: testImplementURIException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ final DeployDestination dest = mock(DeployDestination.class); - final DataCenter dc = mock(DataCenter.class); + // removed local mock; replaced with global field `dc` when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class);
Original Test Code (click to expand)
@Test public void testImplementURIException() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc

Test Case ID #cloudstack_Test_214_4

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ final DeployDestination dest = mock(DeployDestination.class); - final DataCenter dc = mock(DataCenter.class); + // removed local mock; replaced with global field `dc` when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class);
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = mock(DataCenter.class); } // === Replace local variable in test with === dc

Mock Clone Instance #cloudstack_MCI_215

Reusable Method

private static DataCenter createMockDataCenter(long idReturn) { DataCenter dc = Mockito.mock(DataCenter.class); Mockito.when(dc.getId()).thenReturn(idReturn); return dc; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_215_1

Test Case Name: avoidDisabledDataCentersTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: dc

Suggested Diff
--- original +++ refactored @@ public void avoidDisabledDataCentersTest() { - DataCenter dc = Mockito.mock(DataCenter.class); - Mockito.when(dc.getId()).thenReturn(123l); + DataCenter dc = createMockDataCenter(123l); ExcludeList avoids = new ExcludeList(); AllocationState[] allocationStates = AllocationState.values(); for (int i = 0; i < allocationStates.length - 1; ++i) { Mockito.when(dc.getAllocationState()).thenReturn(allocationStates[i]); _dpm.avoidDisabledDataCenters(dc, avoids); if (allocationStates[i] == AllocationState.Disabled) { assertAvoidIsEmpty(avoids, false, true, true, true); Assert.assertTrue(avoids.getDataCentersToAvoid().size() == 1); Assert.assertTrue(avoids.getDataCentersToAvoid().contains(dc.getId())); } else { assertAvoidIsEmpty(avoids, true, true, true, true); } } }
Original Test Code (click to expand)
@Test public void avoidDisabledDataCentersTest() { DataCenter dc = Mockito.mock(DataCenter.class); Mockito.when(dc.getId()).thenReturn(123l); ExcludeList avoids = new ExcludeList(); AllocationState[] allocationStates = AllocationState.values(); for (int i = 0; i < allocationStates.length - 1; ++i) { Mockito.when(dc.getAllocationState()).thenReturn(allocationStates[i]); _dpm.avoidDisabledDataCenters(dc, avoids); if (allocationStates[i] == AllocationState.Disabled) { assertAvoidIsEmpty(avoids, false, true, true, true); Assert.assertTrue(avoids.getDataCentersToAvoid().size() == 1); Assert.assertTrue(avoids.getDataCentersToAvoid().contains(dc.getId())); } else { assertAvoidIsEmpty(avoids, true, true, true, true); } } }
Reusable Method for MCI (click to expand)
private static DataCenter createMockDataCenter(long idReturn) { DataCenter dc = Mockito.mock(DataCenter.class); Mockito.when(dc.getId()).thenReturn(idReturn); return dc; }

Test Case ID #cloudstack_Test_215_2

Test Case Name: prepareAvoidDisabledTests(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ private DataCenter prepareAvoidDisabledTests() { - DataCenter dc = Mockito.mock(DataCenter.class); - Mockito.when(dc.getId()).thenReturn(123l); + DataCenter dc = createMockDataCenter(123l); List<Long> podIds = new ArrayList<>(); podIds.add(1l); Mockito.doReturn(podIds).when(hostPodDao).listAllPods(Mockito.anyLong()); return dc; }
Original Test Code (click to expand)
private DataCenter prepareAvoidDisabledTests() { DataCenter dc = Mockito.mock(DataCenter.class); Mockito.when(dc.getId()).thenReturn(123l); List<Long> podIds = new ArrayList<>(); podIds.add(1l); Mockito.doReturn(podIds).when(hostPodDao).listAllPods(Mockito.anyLong()); return dc; }
Reusable Method for MCI (click to expand)
private static DataCenter createMockDataCenter(long idReturn) { DataCenter dc = Mockito.mock(DataCenter.class); Mockito.when(dc.getId()).thenReturn(idReturn); return dc; }

Mock Clone Instance #cloudstack_MCI_216

Reusable Method

// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = Mockito.mock(DataCenter.class); } // === Replace local variable in test with === dc

The refactoring details in each test cases


Test Case ID #cloudstack_Test_216_1

Test Case Name: prepareAndVerifyAvoidDisabledResourcesTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); - DataCenter dc = Mockito.mock(DataCenter.class); + // removed local mock; replaced with global field `dc` ExcludeList avoids = Mockito.mock(ExcludeList.class); Mockito.when(vmProfile.getType()).thenReturn(vmType); Mockito.when(vmProfile.getId()).thenReturn(1l); Mockito.doNothing().when(_dpm).avoidDisabledDataCenters(dc, avoids); Mockito.doNothing().when(_dpm).avoidDisabledPods(dc, avoids); Mockito.doNothing().when(_dpm).avoidDisabledClusters(dc, avoids); Mockito.doNothing().when(_dpm).avoidDisabledHosts(dc, avoids); VMInstanceVO vmInstanceVO = Mockito.mock(VMInstanceVO.class); Mockito.when(vmInstanceDao.findById(Mockito.anyLong())).thenReturn(vmInstanceVO); AccountVO owner = Mockito.mock(AccountVO.class); Mockito.when(owner.getRoleId()).thenReturn(roleId); Mockito.when(accountDao.findById(Mockito.anyLong())).thenReturn(owner); _dpm.avoidDisabledResources(vmProfile, dc, avoids); Mockito.verify(_dpm, Mockito.times(timesRouter)).isRouterDeployableInDisabledResources(); Mockito.verify(_dpm, Mockito.times(timesAdminVm)).isAdminVmDeployableInDisabledResources(); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledDataCenters(dc, avoids); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledPods(dc, avoids); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledClusters(dc, avoids); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledHosts(dc, avoids); Mockito.reset(_dpm);
Original Test Code (click to expand)
private void prepareAndVerifyAvoidDisabledResourcesTest(int timesRouter, int timesAdminVm, int timesDisabledResource, long roleId, Type vmType, boolean isSystemDepolyable, boolean isAdminVmDeployable) { Mockito.doReturn(isSystemDepolyable).when(_dpm).isRouterDeployableInDisabledResources(); Mockito.doReturn(isAdminVmDeployable).when(_dpm).isAdminVmDeployableInDisabledResources(); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); DataCenter dc = Mockito.mock(DataCenter.class); ExcludeList avoids = Mockito.mock(ExcludeList.class); Mockito.when(vmProfile.getType()).thenReturn(vmType); Mockito.when(vmProfile.getId()).thenReturn(1l); Mockito.doNothing().when(_dpm).avoidDisabledDataCenters(dc, avoids); Mockito.doNothing().when(_dpm).avoidDisabledPods(dc, avoids); Mockito.doNothing().when(_dpm).avoidDisabledClusters(dc, avoids); Mockito.doNothing().when(_dpm).avoidDisabledHosts(dc, avoids); VMInstanceVO vmInstanceVO = Mockito.mock(VMInstanceVO.class); Mockito.when(vmInstanceDao.findById(Mockito.anyLong())).thenReturn(vmInstanceVO); AccountVO owner = Mockito.mock(AccountVO.class); Mockito.when(owner.getRoleId()).thenReturn(roleId); Mockito.when(accountDao.findById(Mockito.anyLong())).thenReturn(owner); _dpm.avoidDisabledResources(vmProfile, dc, avoids); Mockito.verify(_dpm, Mockito.times(timesRouter)).isRouterDeployableInDisabledResources(); Mockito.verify(_dpm, Mockito.times(timesAdminVm)).isAdminVmDeployableInDisabledResources(); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledDataCenters(dc, avoids); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledPods(dc, avoids); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledClusters(dc, avoids); Mockito.verify(_dpm, Mockito.times(timesDisabledResource)).avoidDisabledHosts(dc, avoids); Mockito.reset(_dpm); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = Mockito.mock(DataCenter.class); } // === Replace local variable in test with === dc

Test Case ID #cloudstack_Test_216_2

Test Case Name: avoidDisabledPodsTestNoDisabledPod(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ @Test public void avoidDisabledPodsTestNoDisabledPod() { - DataCenter dc = Mockito.mock(DataCenter.class); + // removed local mock; replaced with global field `dc` List<Long> podIds = new ArrayList<>(); long expectedPodId = 123l; podIds.add(expectedPodId); Mockito.doReturn(new ArrayList<>()).when(hostPodDao).listDisabledPods(Mockito.anyLong()); ExcludeList avoids = new ExcludeList(); - _dpm.avoidDisabledPods(dc, avoids); + _dpm.avoidDisabledPods(dc, avoids); assertAvoidIsEmpty(avoids, true, true, true, true); }
Original Test Code (click to expand)
@Test public void avoidDisabledPodsTestNoDisabledPod() { DataCenter dc = Mockito.mock(DataCenter.class); List<Long> podIds = new ArrayList<>(); long expectedPodId = 123l; podIds.add(expectedPodId); Mockito.doReturn(new ArrayList<>()).when(hostPodDao).listDisabledPods(Mockito.anyLong()); ExcludeList avoids = new ExcludeList(); _dpm.avoidDisabledPods(dc, avoids); assertAvoidIsEmpty(avoids, true, true, true, true); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = Mockito.mock(DataCenter.class); } // === Replace local variable in test with === dc

Test Case ID #cloudstack_Test_216_3

Test Case Name: avoidDisabledPodsTestHasDisabledPod(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\deploy\DeploymentPlanningManagerImplTest.java)

Mock Object Variable Name: dc

Suggested Diff
@@ @Test public void avoidDisabledPodsTestHasDisabledPod() { - DataCenter dc = Mockito.mock(DataCenter.class); + // removed local mock; replaced with global field `dc` List<Long> podIds = new ArrayList<>(); long expectedPodId = 123l; podIds.add(expectedPodId); Mockito.doReturn(podIds).when(hostPodDao).listDisabledPods(Mockito.anyLong()); ExcludeList avoids = new ExcludeList(); - _dpm.avoidDisabledPods(dc, avoids); + _dpm.avoidDisabledPods(dc, avoids); assertAvoidIsEmpty(avoids, true, false, true, true); Assert.assertTrue(avoids.getPodsToAvoid().size() == 1); Assert.assertTrue(avoids.getPodsToAvoid().contains(expectedPodId)); }
Original Test Code (click to expand)
@Test public void avoidDisabledPodsTestHasDisabledPod() { DataCenter dc = Mockito.mock(DataCenter.class); List<Long> podIds = new ArrayList<>(); long expectedPodId = 123l; podIds.add(expectedPodId); Mockito.doReturn(podIds).when(hostPodDao).listDisabledPods(Mockito.anyLong()); ExcludeList avoids = new ExcludeList(); _dpm.avoidDisabledPods(dc, avoids); assertAvoidIsEmpty(avoids, true, false, true, true); Assert.assertTrue(avoids.getPodsToAvoid().size() == 1); Assert.assertTrue(avoids.getPodsToAvoid().contains(expectedPodId)); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private DataCenter dc; // === Add to @BeforeEach method === @BeforeEach public void setUp() { dc = Mockito.mock(DataCenter.class); } // === Replace local variable in test with === dc

Mock Clone Instance #cloudstack_MCI_217

Reusable Method

private static DeleteUserDataCmd createMockDeleteUserDataCmd() { DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_217_1

Test Case Name: testSuccessfulDeleteUserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); - when(cmd.getAccountName()).thenReturn("testAccountName"); - when(cmd.getDomainId()).thenReturn(1L); - when(cmd.getProjectId()).thenReturn(2L); - when(cmd.getId()).thenReturn(1L); + DeleteUserDataCmd cmd = createMockDeleteUserDataCmd(); UserDataVO userData = Mockito.mock(UserDataVO.class); Mockito.when(userData.getId()).thenReturn(1L); when(_userDataDao.findById(1L)).thenReturn(userData); @@
Original Test Code (click to expand)
@Test public void testSuccessfulDeleteUserdata() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); UserDataVO userData = Mockito.mock(UserDataVO.class); Mockito.when(userData.getId()).thenReturn(1L); when(_userDataDao.findById(1L)).thenReturn(userData); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(null); when(_templateDao.findTemplatesLinkedToUserdata(1L)).thenReturn(new ArrayList<VMTemplateVO>()); when(_userVmDao.findByUserDataId(1L)).thenReturn(new ArrayList<UserVmVO>()); when(_userDataDao.remove(1L)).thenReturn(true); boolean result = spy.deleteUserData(cmd); Assert.assertEquals(true, result); }
Reusable Method for MCI (click to expand)
private static DeleteUserDataCmd createMockDeleteUserDataCmd() { DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); return cmd; }

Test Case ID #cloudstack_Test_217_2

Test Case Name: testDeleteUserdataLinkedToTemplate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); - when(cmd.getAccountName()).thenReturn("testAccountName"); - when(cmd.getDomainId()).thenReturn(1L); - when(cmd.getProjectId()).thenReturn(2L); - when(cmd.getId()).thenReturn(1L); + DeleteUserDataCmd cmd = createMockDeleteUserDataCmd(); UserDataVO userData = Mockito.mock(UserDataVO.class); Mockito.when(userData.getId()).thenReturn(1L); when(_userDataDao.findById(1L)).thenReturn(userData); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testDeleteUserdataLinkedToTemplate() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); UserDataVO userData = Mockito.mock(UserDataVO.class); Mockito.when(userData.getId()).thenReturn(1L); when(_userDataDao.findById(1L)).thenReturn(userData); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(null); VMTemplateVO vmTemplateVO = Mockito.mock(VMTemplateVO.class); List<VMTemplateVO> linkedTemplates = new ArrayList<>(); linkedTemplates.add(vmTemplateVO); when(_templateDao.findTemplatesLinkedToUserdata(1L)).thenReturn(linkedTemplates); spy.deleteUserData(cmd); }
Reusable Method for MCI (click to expand)
private static DeleteUserDataCmd createMockDeleteUserDataCmd() { DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); return cmd; }

Test Case ID #cloudstack_Test_217_3

Test Case Name: testDeleteUserdataUsedByVM(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\server\ManagementServerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); - DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); - when(cmd.getAccountName()).thenReturn("testAccountName"); - when(cmd.getDomainId()).thenReturn(1L); - when(cmd.getProjectId()).thenReturn(2L); - when(cmd.getId()).thenReturn(1L); + DeleteUserDataCmd cmd = createMockDeleteUserDataCmd(); UserDataVO userData = Mockito.mock(UserDataVO.class); Mockito.when(userData.getId()).thenReturn(1L); when(_userDataDao.findById(1L)).thenReturn(userData); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void testDeleteUserdataUsedByVM() { PowerMockito.mockStatic(CallContext.class); CallContext callContextMock = PowerMockito.mock(CallContext.class); when(CallContext.current()).thenReturn(callContextMock); when(account.getAccountId()).thenReturn(1L); when(account.getDomainId()).thenReturn(2L); when(callContextMock.getCallingAccount()).thenReturn(account); when(_accountMgr.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); UserDataVO userData = Mockito.mock(UserDataVO.class); Mockito.when(userData.getId()).thenReturn(1L); when(_userDataDao.findById(1L)).thenReturn(userData); when(_userDataDao.findByName(account.getAccountId(), account.getDomainId(), "testName")).thenReturn(null); when(_templateDao.findTemplatesLinkedToUserdata(1L)).thenReturn(new ArrayList<VMTemplateVO>()); UserVmVO userVmVO = Mockito.mock(UserVmVO.class); List<UserVmVO> vms = new ArrayList<>(); vms.add(userVmVO); when(_userVmDao.findByUserDataId(1L)).thenReturn(vms); spy.deleteUserData(cmd); }
Reusable Method for MCI (click to expand)
private static DeleteUserDataCmd createMockDeleteUserDataCmd() { DeleteUserDataCmd cmd = Mockito.mock(DeleteUserDataCmd.class); when(cmd.getAccountName()).thenReturn("testAccountName"); when(cmd.getDomainId()).thenReturn(1L); when(cmd.getProjectId()).thenReturn(2L); when(cmd.getId()).thenReturn(1L); return cmd; }

Mock Clone Instance #cloudstack_MCI_218

Reusable Method

private static AutoScalePolicyVO createMockAutoScalePolicyVO(AutoScalePolicy.Action action, int duration, int quietTime) { AutoScalePolicyVO autoScalePolicyVOMock = mock(AutoScalePolicyVO.class); when(autoScalePolicyVOMock.getAction()).thenReturn(action); when(autoScalePolicyVOMock.getDuration()).thenReturn(duration); when(autoScalePolicyVOMock.getQuietTime()).thenReturn(quietTime); return autoScalePolicyVOMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_218_1

Test Case Name: testCreateAutoScaleVmGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: asScaleUpPolicyMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ when(lbVmMapDao.isVmAttachedToLoadBalancer(loadBalancerId)).thenReturn(false); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); - when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); - when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); - when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); + asScaleUpPolicyMock = createMockAutoScalePolicyVO(AutoScalePolicy.Action.SCALEUP, scaleUpPolicyDuration, scaleUpPolicyQuietTime); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); @@
Original Test Code (click to expand)
@Test public void testCreateAutoScaleVmGroup() { CreateAutoScaleVmGroupCmd cmd = new CreateAutoScaleVmGroupCmd(); ReflectionTestUtils.setField(cmd, "lbRuleId", loadBalancerId); ReflectionTestUtils.setField(cmd, "name", vmGroupName); ReflectionTestUtils.setField(cmd, "minMembers", minMembers); ReflectionTestUtils.setField(cmd, "maxMembers", maxMembers); ReflectionTestUtils.setField(cmd, "interval", interval); ReflectionTestUtils.setField(cmd, "scaleUpPolicyIds", Arrays.asList(scaleUpPolicyId)); ReflectionTestUtils.setField(cmd, "scaleDownPolicyIds", Arrays.asList(scaleDownPolicyId)); ReflectionTestUtils.setField(cmd, "profileId", vmProfileId); when(entityManager.findById(LoadBalancer.class, loadBalancerId)).thenReturn(loadBalancerMock); when(loadBalancerMock.getAccountId()).thenReturn(accountId); when(loadBalancerMock.getDomainId()).thenReturn(domainId); when(loadBalancerMock.getDefaultPortStart()).thenReturn(memberPort); when(lbDao.findById(loadBalancerId)).thenReturn(loadBalancerMock); when(loadBalancerMock.getSourceIpAddressId()).thenReturn(ipAddressId); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(ipAddressDao.findById(ipAddressId)).thenReturn(ipAddressMock); when(ipAddressMock.getDataCenterId()).thenReturn(zoneId); when(loadBalancerMock.getId()).thenReturn(loadBalancerId); when(autoScaleVmGroupDao.isAutoScaleLoadBalancer(loadBalancerId)).thenReturn(false); when(lbVmMapDao.isVmAttachedToLoadBalancer(loadBalancerId)).thenReturn(false); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).validateAutoScaleCounters(anyLong(), any(), any()); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(networkDao.findById(networkId)).thenReturn(networkMock); when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingId); when(networkOfferingDao.findByIdIncludingRemoved(networkOfferingId)).thenReturn(networkOfferingMock); when(networkOfferingMock.isSupportsVmAutoScaling()).thenReturn(true); when(autoScaleVmGroupDao.persist(any())).thenReturn(asVmGroupMock); PowerMockito.doNothing().when(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); AutoScaleVmGroup vmGroup = autoScaleManagerImplSpy.createAutoScaleVmGroup(cmd); Assert.assertEquals(asVmGroupMock, vmGroup); Mockito.verify(asGroupStatisticsDao).createInactiveDummyRecord(anyLong()); Mockito.verify(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); } @Before public void setUp() { account = new AccountVO("testaccount", 1L, "networkdomain", Account.Type.NORMAL, "uuid"); account.setId(2L); user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, account); when(counterDao.persist(any(CounterVO.class))).thenReturn(counterMock); when(counterDao.findById(anyLong())).thenReturn(counterMock); when(conditionDao.findById(any())).thenReturn(conditionMock); when(conditionDao.persist(any(ConditionVO.class))).thenReturn(conditionMock); when(accountManager.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); Mockito.doNothing().when(accountManager).checkAccess(Mockito.any(Account.class), Mockito.isNull(), Mockito.anyBoolean(), Mockito.any()); when(asPolicyDao.persist(any(AutoScalePolicyVO.class))).thenReturn(asScaleUpPolicyMock); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyVO createMockAutoScalePolicyVO(AutoScalePolicy.Action action, int duration, int quietTime) { AutoScalePolicyVO autoScalePolicyVOMock = mock(AutoScalePolicyVO.class); when(autoScalePolicyVOMock.getAction()).thenReturn(action); when(autoScalePolicyVOMock.getDuration()).thenReturn(duration); when(autoScalePolicyVOMock.getQuietTime()).thenReturn(quietTime); return autoScalePolicyVOMock; }

Test Case ID #cloudstack_Test_218_2

Test Case Name: testUpdateAutoScaleVmGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: asScaleUpPolicyMock

Suggested Diff
--- Original +++ Refactored @@ when(asVmGroupMock.getLoadBalancerId()).thenReturn(loadBalancerId); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); - when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); - when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); - when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); + asScaleUpPolicyMock = createMockAutoScalePolicyVO(AutoScalePolicy.Action.SCALEUP, scaleUpPolicyDuration, scaleUpPolicyQuietTime); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); @@
Original Test Code (click to expand)
@Test public void testUpdateAutoScaleVmGroup() { UpdateAutoScaleVmGroupCmd cmd = new UpdateAutoScaleVmGroupCmd(); ReflectionTestUtils.setField(cmd, "id", vmGroupId); ReflectionTestUtils.setField(cmd, "name", vmGroupNameWithMaxLength); ReflectionTestUtils.setField(cmd, "minMembers", minMembers + 1); ReflectionTestUtils.setField(cmd, "maxMembers", maxMembers + 1); ReflectionTestUtils.setField(cmd, "interval", interval); when(autoScaleVmGroupDao.findById(vmGroupId)).thenReturn(asVmGroupMock); when(asVmGroupMock.getName()).thenReturn(vmGroupNameWithMaxLength); when(asVmGroupMock.getInterval()).thenReturn(interval); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getState()).thenReturn(AutoScaleVmGroup.State.DISABLED); when(asVmGroupMock.getProfileId()).thenReturn(vmProfileId); when(asVmGroupMock.getLoadBalancerId()).thenReturn(loadBalancerId); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(lbDao.findById(loadBalancerId)).thenReturn(loadBalancerMock); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).validateAutoScaleCounters(anyLong(), any(), any()); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(networkDao.findById(networkId)).thenReturn(networkMock); when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingId); when(networkOfferingDao.findByIdIncludingRemoved(networkOfferingId)).thenReturn(networkOfferingMock); when(networkOfferingMock.isSupportsVmAutoScaling()).thenReturn(true); when(autoScaleVmGroupDao.persist(any())).thenReturn(asVmGroupMock); PowerMockito.doNothing().when(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); AutoScaleVmGroup vmGroup = autoScaleManagerImplSpy.updateAutoScaleVmGroup(cmd); Assert.assertEquals(asVmGroupMock, vmGroup); Mockito.verify(asVmGroupMock).setName(vmGroupNameWithMaxLength); Mockito.verify(asVmGroupMock).setMinMembers(minMembers + 1); Mockito.verify(asVmGroupMock).setMaxMembers(maxMembers + 1); Mockito.verify(asVmGroupMock).setInterval(interval); } @Before public void setUp() { account = new AccountVO("testaccount", 1L, "networkdomain", Account.Type.NORMAL, "uuid"); account.setId(2L); user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); CallContext.register(user, account); when(counterDao.persist(any(CounterVO.class))).thenReturn(counterMock); when(counterDao.findById(anyLong())).thenReturn(counterMock); when(conditionDao.findById(any())).thenReturn(conditionMock); when(conditionDao.persist(any(ConditionVO.class))).thenReturn(conditionMock); when(accountManager.finalizeOwner(nullable(Account.class), nullable(String.class), nullable(Long.class), nullable(Long.class))).thenReturn(account); Mockito.doNothing().when(accountManager).checkAccess(Mockito.any(Account.class), Mockito.isNull(), Mockito.anyBoolean(), Mockito.any()); when(asPolicyDao.persist(any(AutoScalePolicyVO.class))).thenReturn(asScaleUpPolicyMock); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyVO createMockAutoScalePolicyVO(AutoScalePolicy.Action action, int duration, int quietTime) { AutoScalePolicyVO autoScalePolicyVOMock = mock(AutoScalePolicyVO.class); when(autoScalePolicyVOMock.getAction()).thenReturn(action); when(autoScalePolicyVOMock.getDuration()).thenReturn(duration); when(autoScalePolicyVOMock.getQuietTime()).thenReturn(quietTime); return autoScalePolicyVOMock; }

Test Case ID #cloudstack_Test_218_3

Test Case Name: testCreateAutoScaleVmGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: asScaleDownPolicyMock

Suggested Diff
--- original +++ refactored @@ when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); - when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); - when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); - when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); + asScaleDownPolicyMock = createMockAutoScalePolicyVO(AutoScalePolicy.Action.SCALEDOWN, scaleDownPolicyDuration, scaleDownPolicyQuietTime); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); @@
Original Test Code (click to expand)
@Test public void testCreateAutoScaleVmGroup() { CreateAutoScaleVmGroupCmd cmd = new CreateAutoScaleVmGroupCmd(); ReflectionTestUtils.setField(cmd, "lbRuleId", loadBalancerId); ReflectionTestUtils.setField(cmd, "name", vmGroupName); ReflectionTestUtils.setField(cmd, "minMembers", minMembers); ReflectionTestUtils.setField(cmd, "maxMembers", maxMembers); ReflectionTestUtils.setField(cmd, "interval", interval); ReflectionTestUtils.setField(cmd, "scaleUpPolicyIds", Arrays.asList(scaleUpPolicyId)); ReflectionTestUtils.setField(cmd, "scaleDownPolicyIds", Arrays.asList(scaleDownPolicyId)); ReflectionTestUtils.setField(cmd, "profileId", vmProfileId); when(entityManager.findById(LoadBalancer.class, loadBalancerId)).thenReturn(loadBalancerMock); when(loadBalancerMock.getAccountId()).thenReturn(accountId); when(loadBalancerMock.getDomainId()).thenReturn(domainId); when(loadBalancerMock.getDefaultPortStart()).thenReturn(memberPort); when(lbDao.findById(loadBalancerId)).thenReturn(loadBalancerMock); when(loadBalancerMock.getSourceIpAddressId()).thenReturn(ipAddressId); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(ipAddressDao.findById(ipAddressId)).thenReturn(ipAddressMock); when(ipAddressMock.getDataCenterId()).thenReturn(zoneId); when(loadBalancerMock.getId()).thenReturn(loadBalancerId); when(autoScaleVmGroupDao.isAutoScaleLoadBalancer(loadBalancerId)).thenReturn(false); when(lbVmMapDao.isVmAttachedToLoadBalancer(loadBalancerId)).thenReturn(false); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).validateAutoScaleCounters(anyLong(), any(), any()); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(networkDao.findById(networkId)).thenReturn(networkMock); when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingId); when(networkOfferingDao.findByIdIncludingRemoved(networkOfferingId)).thenReturn(networkOfferingMock); when(networkOfferingMock.isSupportsVmAutoScaling()).thenReturn(true); when(autoScaleVmGroupDao.persist(any())).thenReturn(asVmGroupMock); PowerMockito.doNothing().when(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); AutoScaleVmGroup vmGroup = autoScaleManagerImplSpy.createAutoScaleVmGroup(cmd); Assert.assertEquals(asVmGroupMock, vmGroup); Mockito.verify(asGroupStatisticsDao).createInactiveDummyRecord(anyLong()); Mockito.verify(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyVO createMockAutoScalePolicyVO(AutoScalePolicy.Action action, int duration, int quietTime) { AutoScalePolicyVO autoScalePolicyVOMock = mock(AutoScalePolicyVO.class); when(autoScalePolicyVOMock.getAction()).thenReturn(action); when(autoScalePolicyVOMock.getDuration()).thenReturn(duration); when(autoScalePolicyVOMock.getQuietTime()).thenReturn(quietTime); return autoScalePolicyVOMock; }

Test Case ID #cloudstack_Test_218_4

Test Case Name: testUpdateAutoScaleVmGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: asScaleDownPolicyMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); - when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); - when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); - when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); + asScaleDownPolicyMock = createMockAutoScalePolicyVO(AutoScalePolicy.Action.SCALEDOWN, scaleDownPolicyDuration, scaleDownPolicyQuietTime); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); @@
Original Test Code (click to expand)
@Test public void testUpdateAutoScaleVmGroup() { UpdateAutoScaleVmGroupCmd cmd = new UpdateAutoScaleVmGroupCmd(); ReflectionTestUtils.setField(cmd, "id", vmGroupId); ReflectionTestUtils.setField(cmd, "name", vmGroupNameWithMaxLength); ReflectionTestUtils.setField(cmd, "minMembers", minMembers + 1); ReflectionTestUtils.setField(cmd, "maxMembers", maxMembers + 1); ReflectionTestUtils.setField(cmd, "interval", interval); when(autoScaleVmGroupDao.findById(vmGroupId)).thenReturn(asVmGroupMock); when(asVmGroupMock.getName()).thenReturn(vmGroupNameWithMaxLength); when(asVmGroupMock.getInterval()).thenReturn(interval); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getState()).thenReturn(AutoScaleVmGroup.State.DISABLED); when(asVmGroupMock.getProfileId()).thenReturn(vmProfileId); when(asVmGroupMock.getLoadBalancerId()).thenReturn(loadBalancerId); SearchBuilder<AutoScalePolicyVO> searchBuilderMock = Mockito.mock(SearchBuilder.class); SearchCriteria<AutoScalePolicyVO> searchCriteriaMock = Mockito.mock(SearchCriteria.class); when(asScaleUpPolicyMock.getDuration()).thenReturn(scaleUpPolicyDuration); when(asScaleUpPolicyMock.getQuietTime()).thenReturn(scaleUpPolicyQuietTime); when(asScaleUpPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); when(asScaleDownPolicyMock.getDuration()).thenReturn(scaleDownPolicyDuration); when(asScaleDownPolicyMock.getQuietTime()).thenReturn(scaleDownPolicyQuietTime); when(asScaleDownPolicyMock.getAction()).thenReturn(AutoScalePolicy.Action.SCALEDOWN); Mockito.doReturn(searchBuilderMock).when(asPolicyDao).createSearchBuilder(); when(searchBuilderMock.entity()).thenReturn(asScaleUpPolicyMock); Mockito.doReturn(searchCriteriaMock).when(searchBuilderMock).create(); when(asPolicyDao.search(searchCriteriaMock, null)).thenReturn(Arrays.asList(asScaleUpPolicyMock)).thenReturn(Arrays.asList(asScaleDownPolicyMock)); when(lbDao.findById(loadBalancerId)).thenReturn(loadBalancerMock); when(autoScaleVmProfileDao.findById(vmProfileId)).thenReturn(asVmProfileMock); PowerMockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); PowerMockito.doNothing().when(autoScaleManagerImplSpy).validateAutoScaleCounters(anyLong(), any(), any()); when(loadBalancerMock.getNetworkId()).thenReturn(networkId); when(networkDao.findById(networkId)).thenReturn(networkMock); when(networkMock.getNetworkOfferingId()).thenReturn(networkOfferingId); when(networkOfferingDao.findByIdIncludingRemoved(networkOfferingId)).thenReturn(networkOfferingMock); when(networkOfferingMock.isSupportsVmAutoScaling()).thenReturn(true); when(autoScaleVmGroupDao.persist(any())).thenReturn(asVmGroupMock); PowerMockito.doNothing().when(autoScaleManagerImplSpy).scheduleMonitorTask(anyLong()); AutoScaleVmGroup vmGroup = autoScaleManagerImplSpy.updateAutoScaleVmGroup(cmd); Assert.assertEquals(asVmGroupMock, vmGroup); Mockito.verify(asVmGroupMock).setName(vmGroupNameWithMaxLength); Mockito.verify(asVmGroupMock).setMinMembers(minMembers + 1); Mockito.verify(asVmGroupMock).setMaxMembers(maxMembers + 1); Mockito.verify(asVmGroupMock).setInterval(interval); }
Reusable Method for MCI (click to expand)
private static AutoScalePolicyVO createMockAutoScalePolicyVO(AutoScalePolicy.Action action, int duration, int quietTime) { AutoScalePolicyVO autoScalePolicyVOMock = mock(AutoScalePolicyVO.class); when(autoScalePolicyVOMock.getAction()).thenReturn(action); when(autoScalePolicyVOMock.getDuration()).thenReturn(duration); when(autoScalePolicyVOMock.getQuietTime()).thenReturn(quietTime); return autoScalePolicyVOMock; }

Mock Clone Instance #cloudstack_MCI_219

Reusable Method

private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_219_1

Test Case Name: testExecuteUpdateObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); @@
Original Test Code (click to expand)
@Test public void testExecuteUpdateObject() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_2

Test Case Name: testExecuteUpdateObjectWithParameters(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); @@
Original Test Code (click to expand)
@Test public void testExecuteUpdateObjectWithParameters() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeUpdateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("PUT"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_3

Test Case Name: testExecuteCreateObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath"); @@
Original Test Code (click to expand)
@Test public void testExecuteCreateObject() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath"); assertThat(object, notNullValue()); assertThat(object, equalTo(newObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_4

Test Case Name: testExecuteCreateObjectWithParameters(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(newObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteCreateObjectWithParameters() throws Exception { final TestPojo newObject = new TestPojo(); newObject.setField("newValue"); final String newObjectJson = gson.toJson(newObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeCreateObject(newObject, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(newObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("POST"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestPayloadMatcher.aPayload(newObjectJson), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_5

Test Case Name: testExecuteDeleteObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
@@ when(response.getEntity()).thenReturn(entity); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeDeleteObject("/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("DELETE"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteDeleteObject() throws Exception { final HttpEntity entity = mock(HttpEntity.class); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(entity); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); connector.executeDeleteObject("/somepath"); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("DELETE"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_6

Test Case Name: testExecuteRetrieveObject(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath"); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteRetrieveObject() throws Exception { final TestPojo existingObject = new TestPojo(); existingObject.setField("existingValue"); final String newObjectJson = gson.toJson(existingObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath"); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_7

Test Case Name: testExecuteRetrieveObjectWithParameters(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); @@
Original Test Code (click to expand)
@Test public void testExecuteRetrieveObjectWithParameters() throws Exception { final TestPojo existingObject = new TestPojo(); existingObject.setField("existingValue"); final String newObjectJson = gson.toJson(existingObject); final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getEntity()).thenReturn(new StringEntity(newObjectJson)); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).build(); final TestPojo object = connector.executeRetrieveObject(TestPojo.class, "/somepath", DEFAULT_TEST_PARAMETERS); assertThat(object, notNullValue()); assertThat(object, equalTo(existingObject)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestMethodMatcher.aMethod("GET"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg2=val2"), any(HttpClientContext.class)); verify(httpClient).execute(any(HttpHost.class), HttpUriRequestQueryMatcher.aQueryThatContains("arg1=val1"), any(HttpClientContext.class)); verify(response).close(); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_8

Test Case Name: testCustomDeserializerTypeMismatch(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("[{somethig_not_type : \"WrongType\"}]")); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).classToDeserializerEntry(TestPojo.class, new TestPojoDeserializer()).build(); connector.executeRetrieveObject(TestPojo.class, "/somepath"); @@
Original Test Code (click to expand)
@Test(expected = JsonParseException.class) public void testCustomDeserializerTypeMismatch() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("[{somethig_not_type : \"WrongType\"}]")); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).classToDeserializerEntry(TestPojo.class, new TestPojoDeserializer()).build(); connector.executeRetrieveObject(TestPojo.class, "/somepath"); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Test Case ID #cloudstack_Test_219_9

Test Case Name: testCustomDeserializerForCustomLists(File: C:\Java_projects\Apache\cloudstack\utils\src\test\java\com\cloud\utils\rest\RESTServiceConnectorTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("{results: [{field : \"SomeValue\"}], results_count: 1}")); - final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); + final CloseableHttpClient httpClient = createMockCloseableHttpClient(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final Class<? extends CollectionType> clazzListOfTestPojo = new ObjectMapper().getTypeFactory().constructCollectionType(List.class, TestPojo.class).getClass(); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).classToDeserializerEntry(clazzListOfTestPojo, new CustomListDeserializer<TestPojoDeserializer>()).build(); connector.executeRetrieveObject(TestPojo.class, "/somepath"); @@
Original Test Code (click to expand)
@Test public void testCustomDeserializerForCustomLists() throws Exception { final CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getStatusLine()).thenReturn(HTTP_200_STATUS_LINE); when(response.getEntity()).thenReturn(new StringEntity("{results: [{field : \"SomeValue\"}], results_count: 1}")); final CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); final RestClient restClient = new BasicRestClient(httpClient, HttpClientContext.create(), "localhost"); final Class<? extends CollectionType> clazzListOfTestPojo = new ObjectMapper().getTypeFactory().constructCollectionType(List.class, TestPojo.class).getClass(); final RESTServiceConnector connector = new RESTServiceConnector.Builder().client(restClient).classToDeserializerEntry(clazzListOfTestPojo, new CustomListDeserializer<TestPojoDeserializer>()).build(); connector.executeRetrieveObject(TestPojo.class, "/somepath"); }
Reusable Method for MCI (click to expand)
private static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse response) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpHost.class), any(HttpRequest.class), any(HttpClientContext.class))).thenReturn(response); return httpClient; }

Mock Clone Instance #cloudstack_MCI_220

Reusable Method

public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_220_1

Test Case Name: getSnhItfReqTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ Document document = mock(Document.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Original Test Code (click to expand)
@Test public void getSnhItfReqTest() throws Exception { Document document = mock(Document.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_2

Test Case Name: getSnhItfReqWithParserConfigurationExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
@@ CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenThrow(ParserConfigurationException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Original Test Code (click to expand)
@Test public void getSnhItfReqWithParserConfigurationExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenThrow(ParserConfigurationException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_3

Test Case Name: getSnhItfReqWithSAXExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
@@ CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenThrow(SAXException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Original Test Code (click to expand)
@Test public void getSnhItfReqWithSAXExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenThrow(SAXException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_4

Test Case Name: addPortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
@@ Port port = mock(Port.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addPort(port)); } @@
Original Test Code (click to expand)
@Test public void addPortTest() throws Exception { Port port = mock(Port.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addPort(port)); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_5

Test Case Name: addPortWithFailTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ Port port = mock(Port.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{error:404}"); assertFalse(vRouterApiConnector.addPort(port)); }
Original Test Code (click to expand)
@Test public void addPortWithFailTest() throws Exception { Port port = mock(Port.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{error:404}"); assertFalse(vRouterApiConnector.addPort(port)); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_6

Test Case Name: deletePortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
@@ CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deletePort("948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void deletePortTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deletePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_7

Test Case Name: enablePortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.enablePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Original Test Code (click to expand)
@Test public void enablePortTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.enablePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_8

Test Case Name: disablePortTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); - when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); + when(HttpClients.createDefault()).thenReturn(httpClient); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.disablePort("948f421c-edde-4518-a391-09299cc25dc2")); @@
Original Test Code (click to expand)
@Test public void disablePortTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.disablePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_9

Test Case Name: addGatewayTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addGateway(Arrays.asList(gateway1, gateway2))); }
Original Test Code (click to expand)
@Test public void addGatewayTest() throws Exception { Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.addGateway(Arrays.asList(gateway1, gateway2))); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Test Case ID #cloudstack_Test_220_10

Test Case Name: deleteGatewayTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
@@ Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(closeableHttpResponse); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deleteGateway(Arrays.asList(gateway1, gateway2))); } @@
Original Test Code (click to expand)
@Test public void deleteGatewayTest() throws Exception { Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(EntityUtils.toString(any(HttpEntity.class))).thenReturn("{}"); assertTrue(vRouterApiConnector.deleteGateway(Arrays.asList(gateway1, gateway2))); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient(CloseableHttpResponse closeableHttpResponse) { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); return httpClient; } }

Mock Clone Instance #cloudstack_MCI_221

Reusable Method

public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_221_1

Test Case Name: deleteGatewayWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.deleteGateway(Arrays.asList(gateway1, gateway2))); }
Original Test Code (click to expand)
@Test public void deleteGatewayWithExceptionTest() throws Exception { Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.deleteGateway(Arrays.asList(gateway1, gateway2))); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

Test Case ID #cloudstack_Test_221_2

Test Case Name: getSnhItfReqWithIOExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ @Test public void getSnhItfReqWithIOExceptionTest() throws Exception { - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void getSnhItfReqWithIOExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

Test Case ID #cloudstack_Test_221_3

Test Case Name: addPortWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
@@ Port port = mock(Port.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.addPort(port));
Original Test Code (click to expand)
@Test public void addPortWithExceptionTest() throws Exception { Port port = mock(Port.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.addPort(port)); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

Test Case ID #cloudstack_Test_221_4

Test Case Name: deletePortWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ @Test public void deletePortWithExceptionTest() throws Exception { - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(); + when(HttpClients.createDefault()).thenReturn(httpClient); assertFalse(vRouterApiConnector.deletePort("948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void deletePortWithExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.deletePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

Test Case ID #cloudstack_Test_221_5

Test Case Name: enablePortWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ @Test public void enablePortWithExceptionTest() throws Exception { - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.enablePort("948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void enablePortWithExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.enablePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

Test Case ID #cloudstack_Test_221_6

Test Case Name: disablePortWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ @Test public void disablePortWithExceptionTest() throws Exception { - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(); when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.disablePort("948f421c-edde-4518-a391-09299cc25dc2")); } @@
Original Test Code (click to expand)
@Test public void disablePortWithExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.disablePort("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

Test Case ID #cloudstack_Test_221_7

Test Case Name: addGatewayWithExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\VRouterApiConnectorImplTest.java)

Mock Object Variable Name: httpClient

Suggested Diff
--- original +++ refactored @@ Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); - CloseableHttpClient httpClient = mock(CloseableHttpClient.class); - when(HttpClients.createDefault()).thenReturn(httpClient); - when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); + CloseableHttpClient httpClient = MockCloseableHttpClient.createMockCloseableHttpClient(); + when(HttpClients.createDefault()).thenReturn(httpClient); assertFalse(vRouterApiConnector.addGateway(Arrays.asList(gateway1, gateway2))); }
Original Test Code (click to expand)
@Test public void addGatewayWithExceptionTest() throws Exception { Gateway gateway1 = mock(Gateway.class); Gateway gateway2 = mock(Gateway.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); assertFalse(vRouterApiConnector.addGateway(Arrays.asList(gateway1, gateway2))); }
Reusable Method for MCI (click to expand)
public class MockCloseableHttpClient { public static CloseableHttpClient createMockCloseableHttpClient() { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); when(httpClient.execute(any(HttpUriRequest.class))).thenThrow(IOException.class); return httpClient; } }

Mock Clone Instance #cloudstack_MCI_222

Reusable Method

private static ListGuestNetworkIpv6PrefixesCmd createMockListGuestNetworkIpv6PrefixesCmd(long zoneIdReturn) { ListGuestNetworkIpv6PrefixesCmd cmd = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(zoneIdReturn); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_222_1

Test Case Name: testListDataCenterGuestIpv6Prefixes(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ @Test public void testListDataCenterGuestIpv6Prefixes() { - ListGuestNetworkIpv6PrefixesCmd cmd = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); - Mockito.when(cmd.getId()).thenReturn(1L); - Mockito.when(cmd.getZoneId()).thenReturn(1L); + ListGuestNetworkIpv6PrefixesCmd cmd = createMockListGuestNetworkIpv6PrefixesCmd(1L); + Mockito.when(cmd.getId()).thenReturn(1L); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); Mockito.when(dataCenterGuestIpv6PrefixDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterGuestIpv6PrefixVO.class)); Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); Mockito.when(dataCenterGuestIpv6PrefixDao.listAll()).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); List<? extends DataCenterGuestIpv6Prefix> prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd); Assert.assertEquals(1, prefixes.size()); ListGuestNetworkIpv6PrefixesCmd cmd1 = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd1.getId()).thenReturn(null); Mockito.when(cmd1.getZoneId()).thenReturn(1L); prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd1); Assert.assertEquals(2, prefixes.size()); ListGuestNetworkIpv6PrefixesCmd cmd2 = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd2.getId()).thenReturn(null); Mockito.when(cmd2.getZoneId()).thenReturn(null); prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd2); Assert.assertEquals(3, prefixes.size()); } @@
Original Test Code (click to expand)
@Test public void testListDataCenterGuestIpv6Prefixes() { ListGuestNetworkIpv6PrefixesCmd cmd = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd.getId()).thenReturn(1L); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); Mockito.when(dataCenterGuestIpv6PrefixDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterGuestIpv6PrefixVO.class)); Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); Mockito.when(dataCenterGuestIpv6PrefixDao.listAll()).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); List<? extends DataCenterGuestIpv6Prefix> prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd); Assert.assertEquals(1, prefixes.size()); ListGuestNetworkIpv6PrefixesCmd cmd1 = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd1.getId()).thenReturn(null); Mockito.when(cmd1.getZoneId()).thenReturn(1L); prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd1); Assert.assertEquals(2, prefixes.size()); ListGuestNetworkIpv6PrefixesCmd cmd2 = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd2.getId()).thenReturn(null); Mockito.when(cmd2.getZoneId()).thenReturn(null); prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd2); Assert.assertEquals(3, prefixes.size()); }
Reusable Method for MCI (click to expand)
private static ListGuestNetworkIpv6PrefixesCmd createMockListGuestNetworkIpv6PrefixesCmd(long zoneIdReturn) { ListGuestNetworkIpv6PrefixesCmd cmd = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(zoneIdReturn); return cmd; }

Test Case ID #cloudstack_Test_222_2

Test Case Name: testListDataCenterGuestIpv6Prefixes(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\configuration\ConfigurationManagerTest.java)

Mock Object Variable Name: cmd1

Suggested Diff
--- original +++ refactored @@ Assert.assertEquals(1, prefixes.size()); - ListGuestNetworkIpv6PrefixesCmd cmd1 = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); - Mockito.when(cmd1.getId()).thenReturn(null); - Mockito.when(cmd1.getZoneId()).thenReturn(1L); + ListGuestNetworkIpv6PrefixesCmd cmd1 = createMockListGuestNetworkIpv6PrefixesCmd(1L); + Mockito.when(cmd1.getId()).thenReturn(null); prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd1); Assert.assertEquals(2, prefixes.size()); @@
Original Test Code (click to expand)
@Test public void testListDataCenterGuestIpv6Prefixes() { ListGuestNetworkIpv6PrefixesCmd cmd = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd.getId()).thenReturn(1L); Mockito.when(cmd.getZoneId()).thenReturn(1L); Mockito.when(_zoneDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterVO.class)); Mockito.when(dataCenterGuestIpv6PrefixDao.findById(Mockito.anyLong())).thenReturn(Mockito.mock(DataCenterGuestIpv6PrefixVO.class)); Mockito.when(dataCenterGuestIpv6PrefixDao.listByDataCenterId(Mockito.anyLong())).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); Mockito.when(dataCenterGuestIpv6PrefixDao.listAll()).thenReturn(List.of(Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class), Mockito.mock(DataCenterGuestIpv6PrefixVO.class))); List<? extends DataCenterGuestIpv6Prefix> prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd); Assert.assertEquals(1, prefixes.size()); ListGuestNetworkIpv6PrefixesCmd cmd1 = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd1.getId()).thenReturn(null); Mockito.when(cmd1.getZoneId()).thenReturn(1L); prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd1); Assert.assertEquals(2, prefixes.size()); ListGuestNetworkIpv6PrefixesCmd cmd2 = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd2.getId()).thenReturn(null); Mockito.when(cmd2.getZoneId()).thenReturn(null); prefixes = configurationMgr.listDataCenterGuestIpv6Prefixes(cmd2); Assert.assertEquals(3, prefixes.size()); }
Reusable Method for MCI (click to expand)
private static ListGuestNetworkIpv6PrefixesCmd createMockListGuestNetworkIpv6PrefixesCmd(long zoneIdReturn) { ListGuestNetworkIpv6PrefixesCmd cmd = Mockito.mock(ListGuestNetworkIpv6PrefixesCmd.class); Mockito.when(cmd.getZoneId()).thenReturn(zoneIdReturn); return cmd; }

Mock Clone Instance #cloudstack_MCI_223

Reusable Method

private static ResetVMUserDataCmd createMockResetVMUserDataCmd(long idReturn) { ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(idReturn); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_223_1

Test Case Name: testResetVMUserDataVMStateNotStopped(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); - ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); - when(cmd.getId()).thenReturn(1L); + ResetVMUserDataCmd cmd = createMockResetVMUserDataCmd(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Running); try { userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) @PrepareForTest(CallContext.class) public void testResetVMUserDataVMStateNotStopped() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Running); try { userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } }
Reusable Method for MCI (click to expand)
private static ResetVMUserDataCmd createMockResetVMUserDataCmd(long idReturn) { ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(idReturn); return cmd; }

Test Case ID #cloudstack_Test_223_2

Test Case Name: testResetVMUserDataDontAcceptBothUserdataAndUserdataId(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
@@ CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); - ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); - when(cmd.getId()).thenReturn(1L); + ResetVMUserDataCmd cmd = createMockResetVMUserDataCmd(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Stopped); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(1L); try {
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) @PrepareForTest(CallContext.class) public void testResetVMUserDataDontAcceptBothUserdataAndUserdataId() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVoMock); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(userVmVoMock.getTemplateId()).thenReturn(2L); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(userVmVoMock.getState()).thenReturn(VirtualMachine.State.Stopped); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(1L); try { userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } }
Reusable Method for MCI (click to expand)
private static ResetVMUserDataCmd createMockResetVMUserDataCmd(long idReturn) { ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(idReturn); return cmd; }

Test Case ID #cloudstack_Test_223_3

Test Case Name: testResetVMUserDataSuccessResetWithUserdata(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ userVmVO.setUserDataId(100L); userVmVO.setUserData("RandomUserdata"); - ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); - when(cmd.getId()).thenReturn(1L); + ResetVMUserDataCmd cmd = createMockResetVMUserDataCmd(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(null); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); try { doNothing().when(userVmManagerImpl).updateUserData(userVmVO); userVmManagerImpl.resetVMUserData(cmd); @@
Original Test Code (click to expand)
@Test @PrepareForTest(CallContext.class) public void testResetVMUserDataSuccessResetWithUserdata() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); UserVmVO userVmVO = new UserVmVO(); userVmVO.setTemplateId(2L); userVmVO.setState(VirtualMachine.State.Stopped); userVmVO.setUserDataId(100L); userVmVO.setUserData("RandomUserdata"); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserData()).thenReturn("testUserdata"); when(cmd.getUserdataId()).thenReturn(null); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); try { doNothing().when(userVmManagerImpl).updateUserData(userVmVO); userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } Assert.assertEquals("testUserdata", userVmVO.getUserData()); Assert.assertEquals(null, userVmVO.getUserDataId()); }
Reusable Method for MCI (click to expand)
private static ResetVMUserDataCmd createMockResetVMUserDataCmd(long idReturn) { ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(idReturn); return cmd; }

Test Case ID #cloudstack_Test_223_4

Test Case Name: testResetVMUserDataSuccessResetWithUserdataId(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\vm\UserVmManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ userVmVO.setUserData("RandomUserdata"); - ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); - when(cmd.getId()).thenReturn(1L); + ResetVMUserDataCmd cmd = createMockResetVMUserDataCmd(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserdataId()).thenReturn(1L); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); when(userDataDao.findById(1L)).thenReturn(apiUserDataVO); when(apiUserDataVO.getUserData()).thenReturn("testUserdata"); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); @@
Original Test Code (click to expand)
@Test @PrepareForTest(CallContext.class) public void testResetVMUserDataSuccessResetWithUserdataId() { CallContext callContextMock = Mockito.mock(CallContext.class); Mockito.lenient().doReturn(accountMock).when(callContextMock).getCallingAccount(); UserVmVO userVmVO = new UserVmVO(); userVmVO.setTemplateId(2L); userVmVO.setState(VirtualMachine.State.Stopped); userVmVO.setUserDataId(100L); userVmVO.setUserData("RandomUserdata"); ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(1L); when(userVmDao.findById(1L)).thenReturn(userVmVO); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(templateDao.findByIdIncludingRemoved(2L)).thenReturn(template); when(template.getUserDataId()).thenReturn(null); when(cmd.getUserdataId()).thenReturn(1L); UserDataVO apiUserDataVO = Mockito.mock(UserDataVO.class); when(userDataDao.findById(1L)).thenReturn(apiUserDataVO); when(apiUserDataVO.getUserData()).thenReturn("testUserdata"); when(cmd.getHttpMethod()).thenReturn(HTTPMethod.GET); try { doNothing().when(userVmManagerImpl).updateUserData(userVmVO); userVmManagerImpl.resetVMUserData(cmd); } catch (ResourceUnavailableException e) { throw new RuntimeException(e); } catch (InsufficientCapacityException e) { throw new RuntimeException(e); } Assert.assertEquals("testUserdata", userVmVO.getUserData()); Assert.assertEquals(1L, (long) userVmVO.getUserDataId()); }
Reusable Method for MCI (click to expand)
private static ResetVMUserDataCmd createMockResetVMUserDataCmd(long idReturn) { ResetVMUserDataCmd cmd = Mockito.mock(ResetVMUserDataCmd.class); when(cmd.getId()).thenReturn(idReturn); return cmd; }

Mock Clone Instance #cloudstack_MCI_224

Reusable Method

private static VirtualMachineTO createMockVirtualMachineTO(String nameReturn) { VirtualMachineTO mockVm = Mockito.mock(VirtualMachineTO.class); when(mockVm.getName()).thenReturn(nameReturn); return mockVm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_224_1

Test Case Name: testMigrateWithStorageCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(vmName); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); @@ assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); - when(vmSpec.getName()).thenReturn(vmName); - when(vmSpec.getNics()).thenReturn(nicTOs); + when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final Map<VolumeTO, StorageFilerTO> volumeToFiler = new HashMap<VolumeTO, StorageFilerTO>(); volumeToFiler.put(vol1, storage1); volumeToFiler.put(vol2, storage2); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network networkForSm = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final MigrateWithStorageCommand migrateStorageCommand = new MigrateWithStorageCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(vol1.getPath()).thenReturn(path); when(vol2.getPath()).thenReturn(path); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); when(xenServer610Resource.getVDIbyUuid(conn, storage1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, storage2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(networkForSm); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(String nameReturn) { VirtualMachineTO mockVm = Mockito.mock(VirtualMachineTO.class); when(mockVm.getName()).thenReturn(nameReturn); return mockVm; }

Test Case ID #cloudstack_Test_224_2

Test Case Name: testMigrateWithStorageReceiveCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(vmName); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); @@ when(xenServer610Resource.getConnection()).thenReturn(conn); - when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageReceiveCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO vol1 = Mockito.mock(VolumeTO.class); final VolumeTO vol2 = Mockito.mock(VolumeTO.class); final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class); final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class); final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>(); volumeToFiler.add(new Pair<>(vol1, storage1.getPath())); volumeToFiler.add(new Pair<>(vol2, storage2.getPath())); final NicTO nicTO1 = Mockito.mock(NicTO.class); final NicTO nicTO2 = Mockito.mock(NicTO.class); final NicTO nicTO3 = Mockito.mock(NicTO.class); final NicTO[] nicTOs = { nicTO1, nicTO2, nicTO3 }; final XsLocalNetwork nativeNetworkForTraffic = Mockito.mock(XsLocalNetwork.class); final Network network = Mockito.mock(Network.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Network nw1 = Mockito.mock(Network.class); final Network nw2 = Mockito.mock(Network.class); final Network nw3 = Mockito.mock(Network.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final MigrateWithStorageReceiveCommand migrateStorageCommand = new MigrateWithStorageReceiveCommand(vmSpec, volumeToFiler); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getNics()).thenReturn(nicTOs); when(storage1.getUuid()).thenReturn(uuid); when(storage2.getUuid()).thenReturn(uuid); when(xenServer610Resource.getStorageRepository(conn, storage1.getUuid())).thenReturn(sr1); when(xenServer610Resource.getStorageRepository(conn, storage2.getUuid())).thenReturn(sr2); try { when(xenServer610Resource.getNetwork(conn, nicTO1)).thenReturn(nw1); when(xenServer610Resource.getNetwork(conn, nicTO2)).thenReturn(nw2); when(xenServer610Resource.getNetwork(conn, nicTO3)).thenReturn(nw3); when(xenServer610Resource.getNativeNetworkForTraffic(conn, TrafficType.Storage, null)).thenReturn(nativeNetworkForTraffic); when(nativeNetworkForTraffic.getNetwork()).thenReturn(network); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2); verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3); verify(xenServer610Resource, times(1)).getNativeNetworkForTraffic(conn, TrafficType.Storage, null); verify(nativeNetworkForTraffic, times(1)).getNetwork(); verify(xenServer610Resource, times(1)).getHost(); verify(xsHost, times(1)).getUuid(); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(String nameReturn) { VirtualMachineTO mockVm = Mockito.mock(VirtualMachineTO.class); when(mockVm.getName()).thenReturn(nameReturn); return mockVm; }

Test Case ID #cloudstack_Test_224_3

Test Case Name: testMigrateWithStorageSendCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ final String path = "/"; final String mac = "3c:15:c2:c4:4f:18"; final Connection conn = Mockito.mock(Connection.class); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(vmName); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); - when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getVifByMac(conn, null, nic1.getMac())).thenReturn(vif1); when(xenServer610Resource.getVifByMac(conn, null, nic2.getMac())).thenReturn(vif2); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(2)).getVDIbyUuid(conn, volume1.getPath()); verify(xenServer610Resource, times(2)).getVifByMac(conn, null, nic1.getMac()); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommand() { final String vmName = "small"; final String path = "/"; final String mac = "3c:15:c2:c4:4f:18"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); final Network network1 = Mockito.mock(Network.class); final Network network2 = Mockito.mock(Network.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, network1)); nicToNetwork.add(new Pair<NicTO, Object>(nic2, network2)); final Map<String, String> token = new HashMap<String, String>(); final VIF vif1 = Mockito.mock(VIF.class); final VIF vif2 = Mockito.mock(VIF.class); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(nic1.getMac()).thenReturn(mac); when(nic2.getMac()).thenReturn(mac); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); try { when(xenServer610Resource.getVifByMac(conn, null, nic1.getMac())).thenReturn(vif1); when(xenServer610Resource.getVifByMac(conn, null, nic2.getMac())).thenReturn(vif2); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); try { verify(xenServer610Resource, times(2)).getVDIbyUuid(conn, volume1.getPath()); verify(xenServer610Resource, times(2)).getVifByMac(conn, null, nic1.getMac()); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(String nameReturn) { VirtualMachineTO mockVm = Mockito.mock(VirtualMachineTO.class); when(mockVm.getName()).thenReturn(nameReturn); return mockVm; }

Test Case ID #cloudstack_Test_224_4

Test Case Name: testMigrateWithStorageSendCommandSRException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ final String vmName = "small"; final Connection conn = Mockito.mock(Connection.class); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(vmName); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, new String("a"))); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, new String("b"))); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); - when(vmSpec.getName()).thenReturn(vmName); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommandSRException() { final String vmName = "small"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, new String("a"))); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, new String("b"))); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(String nameReturn) { VirtualMachineTO mockVm = Mockito.mock(VirtualMachineTO.class); when(mockVm.getName()).thenReturn(nameReturn); return mockVm; }

Test Case ID #cloudstack_Test_224_5

Test Case Name: testMigrateWithStorageSendCommandNetException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ final Connection conn = Mockito.mock(Connection.class); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(vmName); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); Gson gson = new Gson(); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, new String("a"))); nicToNetwork.add(new Pair<NicTO, Object>(nic2, new String("b"))); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); - when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageSendCommandNetException() { final String vmName = "small"; final String path = "/"; final Connection conn = Mockito.mock(Connection.class); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final VolumeTO volume1 = Mockito.mock(VolumeTO.class); final VolumeTO volume2 = Mockito.mock(VolumeTO.class); final SR sr1 = Mockito.mock(SR.class); final SR sr2 = Mockito.mock(SR.class); final VDI vdi1 = Mockito.mock(VDI.class); final VDI vdi2 = Mockito.mock(VDI.class); final NicTO nic1 = Mockito.mock(NicTO.class); final NicTO nic2 = Mockito.mock(NicTO.class); Gson gson = new Gson(); final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>(); volumeToSr.add(new Pair<VolumeTO, Object>(volume1, sr1)); volumeToSr.add(new Pair<VolumeTO, Object>(volume2, sr2)); final List<Pair<NicTO, Object>> nicToNetwork = new ArrayList<Pair<NicTO, Object>>(); nicToNetwork.add(new Pair<NicTO, Object>(nic1, new String("a"))); nicToNetwork.add(new Pair<NicTO, Object>(nic2, new String("b"))); final Map<String, String> token = new HashMap<String, String>(); final MigrateWithStorageSendCommand migrateStorageCommand = new MigrateWithStorageSendCommand(vmSpec, volumeToSr, nicToNetwork, token); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vmSpec.getName()).thenReturn(vmName); when(volume1.getPath()).thenReturn(path); when(volume2.getPath()).thenReturn(path); when(xenServer610Resource.getVDIbyUuid(conn, volume1.getPath())).thenReturn(vdi1); when(xenServer610Resource.getVDIbyUuid(conn, volume2.getPath())).thenReturn(vdi2); final Answer answer = wrapper.execute(migrateStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(String nameReturn) { VirtualMachineTO mockVm = Mockito.mock(VirtualMachineTO.class); when(mockVm.getName()).thenReturn(nameReturn); return mockVm; }

Test Case ID #cloudstack_Test_224_6

Test Case Name: testMigrateWithStorageCompleteCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\XenServer610WrapperTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final XsHost xsHost = Mockito.mock(XsHost.class); - final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vm = createMockVirtualMachineTO(vmName); final MigrateWithStorageCompleteCommand createStorageCommand = new MigrateWithStorageCompleteCommand(vm); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); - when(vm.getName()).thenReturn(vmName); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); final Answer answer = wrapper.execute(createStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testMigrateWithStorageCompleteCommand() { final String vmName = "small"; final String uuid = "206b21a7-c6ec-40e2-b5e2-f861b9612f04"; final Connection conn = Mockito.mock(Connection.class); final XsHost xsHost = Mockito.mock(XsHost.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final MigrateWithStorageCompleteCommand createStorageCommand = new MigrateWithStorageCompleteCommand(vm); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(xenServer610Resource.getConnection()).thenReturn(conn); when(vm.getName()).thenReturn(vmName); when(xenServer610Resource.getHost()).thenReturn(xsHost); when(xsHost.getUuid()).thenReturn(uuid); final Answer answer = wrapper.execute(createStorageCommand, xenServer610Resource); verify(xenServer610Resource, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(String nameReturn) { VirtualMachineTO mockVm = Mockito.mock(VirtualMachineTO.class); when(mockVm.getName()).thenReturn(nameReturn); return mockVm; }

Mock Clone Instance #cloudstack_MCI_225

Reusable Method

// === Declare in class scope === private VirtualMachineTO machineTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { machineTO = Mockito.mock(VirtualMachineTO.class); } // === Replace local variable in test with === machineTO;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_225_1

Test Case Name: testPrepareForMigrationCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\CitrixRequestWrapperTest.java)

Mock Object Variable Name: machineTO

Suggested Diff
@@ @Test public void testPrepareForMigrationCommand() { - final VirtualMachineTO machineTO = Mockito.mock(VirtualMachineTO.class); + // removed local mock; replaced with global field `machineTO` final PrepareForMigrationCommand prepareCommand = new PrepareForMigrationCommand(machineTO); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(prepareCommand, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testPrepareForMigrationCommand() { final VirtualMachineTO machineTO = Mockito.mock(VirtualMachineTO.class); final PrepareForMigrationCommand prepareCommand = new PrepareForMigrationCommand(machineTO); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(prepareCommand, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineTO machineTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { machineTO = Mockito.mock(VirtualMachineTO.class); } // === Replace local variable in test with === machineTO;

Test Case ID #cloudstack_Test_225_2

Test Case Name: testMigrateCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\CitrixRequestWrapperTest.java)

Mock Object Variable Name: machineTO

Suggested Diff
@@ @Test public void testMigrateCommand() { - final VirtualMachineTO machineTO = Mockito.mock(VirtualMachineTO.class); + // removed local mock; replaced with global field `machineTO` final MigrateCommand migrateCommand = new MigrateCommand("Test", "127.0.0.1", false, machineTO, false); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(migrateCommand, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testMigrateCommand() { final VirtualMachineTO machineTO = Mockito.mock(VirtualMachineTO.class); final MigrateCommand migrateCommand = new MigrateCommand("Test", "127.0.0.1", false, machineTO, false); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(migrateCommand, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineTO machineTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { machineTO = Mockito.mock(VirtualMachineTO.class); } // === Replace local variable in test with === machineTO;

Test Case ID #cloudstack_Test_225_3

Test Case Name: testStartCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\CitrixRequestWrapperTest.java)

Mock Object Variable Name: vm

Suggested Diff
@@ @Test public void testStartCommand() { - final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); + // removed local mock; replaced with global field `machineTO` final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); - final StartCommand startCommand = new StartCommand(vm, host, false); + final StartCommand startCommand = new StartCommand(machineTO, host, false); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(startCommand, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testStartCommand() { final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final StartCommand startCommand = new StartCommand(vm, host, false); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(startCommand, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineTO machineTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { machineTO = Mockito.mock(VirtualMachineTO.class); } // === Replace local variable in test with === machineTO;

Test Case ID #cloudstack_Test_225_4

Test Case Name: testScaleVmCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\xenserver\src\test\java\com\cloud\hypervisor\xenserver\resource\wrapper\xenbase\CitrixRequestWrapperTest.java)

Mock Object Variable Name: machineTO

Suggested Diff
@@ @Test public void testScaleVmCommand() { final String uuid = "6172d8b7-ba10-4a70-93f9-ecaf41f51d53"; - final VirtualMachineTO machineTO = Mockito.mock(VirtualMachineTO.class); + // removed local mock; replaced with global field `machineTO` final Connection conn = Mockito.mock(Connection.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Host host = Mockito.mock(Host.class); final ScaleVmCommand scaleVm = new ScaleVmCommand(machineTO); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(citrixResourceBase.getConnection()).thenReturn(conn); when(citrixResourceBase.getHost()).thenReturn(xsHost); when(citrixResourceBase.getHost().getUuid()).thenReturn(uuid); try { when(citrixResourceBase.isDmcEnabled(conn, host)).thenReturn(true); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(scaleVm, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Original Test Code (click to expand)
@Test public void testScaleVmCommand() { final String uuid = "6172d8b7-ba10-4a70-93f9-ecaf41f51d53"; final VirtualMachineTO machineTO = Mockito.mock(VirtualMachineTO.class); final Connection conn = Mockito.mock(Connection.class); final XsHost xsHost = Mockito.mock(XsHost.class); final Host host = Mockito.mock(Host.class); final ScaleVmCommand scaleVm = new ScaleVmCommand(machineTO); final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); assertNotNull(wrapper); when(citrixResourceBase.getConnection()).thenReturn(conn); when(citrixResourceBase.getHost()).thenReturn(xsHost); when(citrixResourceBase.getHost().getUuid()).thenReturn(uuid); try { when(citrixResourceBase.isDmcEnabled(conn, host)).thenReturn(true); } catch (final XenAPIException e) { fail(e.getMessage()); } catch (final XmlRpcException e) { fail(e.getMessage()); } final Answer answer = wrapper.execute(scaleVm, citrixResourceBase); verify(citrixResourceBase, times(1)).getConnection(); assertFalse(answer.getResult()); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private VirtualMachineTO machineTO; // === Add to @BeforeEach method === @BeforeEach public void setUp() { machineTO = Mockito.mock(VirtualMachineTO.class); } // === Replace local variable in test with === machineTO;

Mock Clone Instance #cloudstack_MCI_226

Reusable Method

private static VirtualMachineTO createMockVirtualMachineTO() { VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); return to; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_226_1

Test Case Name: testMigrateWithinClusterSuccess(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: to

Suggested Diff
--- original +++ refactored @@ Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); - VirtualMachineTO to = mock(VirtualMachineTO.class); - when(to.getId()).thenReturn(6L); + VirtualMachineTO to = createMockVirtualMachineTO(); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); @@
Original Test Code (click to expand)
@Test public void testMigrateWithinClusterSuccess() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration within cluster isn't successful.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO() { VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); return to; }

Test Case ID #cloudstack_Test_226_2

Test Case Name: testMigrateWithinClusterFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: to

Suggested Diff
@@ Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); - VirtualMachineTO to = mock(VirtualMachineTO.class); - when(to.getId()).thenReturn(6L); + VirtualMachineTO to = createMockVirtualMachineTO(); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); @@
Original Test Code (click to expand)
@Test public void testMigrateWithinClusterFailure() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(1L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration within cluster didn't fail.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO() { VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); return to; }

Test Case ID #cloudstack_Test_226_3

Test Case Name: testMigrateAcrossClusterSuccess(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: to

Suggested Diff
@@ Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); - VirtualMachineTO to = mock(VirtualMachineTO.class); - when(to.getId()).thenReturn(6L); + VirtualMachineTO to = createMockVirtualMachineTO(); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); @@
Original Test Code (click to expand)
@Test public void testMigrateAcrossClusterSuccess() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(true); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertTrue("Migration across cluster isn't successful.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO() { VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); return to; }

Test Case ID #cloudstack_Test_226_4

Test Case Name: testMigrateAcrossClusterFailure(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\org\apache\cloudstack\storage\motion\VmwareStorageMotionStrategyTest.java)

Mock Object Variable Name: to

Suggested Diff
--- original +++ refactored @@ Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); - VirtualMachineTO to = mock(VirtualMachineTO.class); - when(to.getId()).thenReturn(6L); + VirtualMachineTO to = createMockVirtualMachineTO(); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); @@
Original Test Code (click to expand)
@Test public void testMigrateAcrossClusterFailure() throws Exception { Host srcHost = mock(Host.class); Host destHost = mock(Host.class); when(srcHost.getClusterId()).thenReturn(1L); when(destHost.getClusterId()).thenReturn(2L); Map<VolumeInfo, DataStore> volumeMap = new HashMap<VolumeInfo, DataStore>(); VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); VMInstanceVO instance = mock(VMInstanceVO.class); when(instanceDao.findById(6L)).thenReturn(instance); MockContext<CommandResult> context = new MockContext<CommandResult>(null, null, volumeMap); AsyncCallbackDispatcher<VmwareStorageMotionStrategyTest, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().mockCallBack(null, null)).setContext(context); MigrateWithStorageAnswer migAnswerMock = mock(MigrateWithStorageAnswer.class); when(migAnswerMock.getResult()).thenReturn(false); when(agentMgr.send(anyLong(), isA(MigrateWithStorageCommand.class))).thenReturn(migAnswerMock); strategy.copyAsync(volumeMap, to, srcHost, destHost, caller); assertFalse("Migration across cluster didn't fail.", result.isSuccess()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO() { VirtualMachineTO to = mock(VirtualMachineTO.class); when(to.getId()).thenReturn(6L); return to; }

Mock Clone Instance #cloudstack_MCI_227

Reusable Method

private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_227_1

Test Case Name: testStartCommandFailedConnect(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ public void testStartCommandFailedConnect() { - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(nics, VirtualMachine.Type.DomainRouter, vmName); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); - when(vmSpec.getNics()).thenReturn(nics); - when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); - when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } } @@
Original Test Code (click to expand)
@Test public void testStartCommandFailedConnect() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(false); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

Test Case ID #cloudstack_Test_227_2

Test Case Name: testStartCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ @Test public void testStartCommandLibvirtException() { - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(nics, VirtualMachine.Type.DomainRouter, vmName); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); - when(vmSpec.getNics()).thenReturn(nics); - when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); - when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } } @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testStartCommandLibvirtException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

Test Case ID #cloudstack_Test_227_3

Test Case Name: testStartCommandInternalError(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ @Test public void testStartCommandInternalError() { - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(nics, VirtualMachine.Type.DomainRouter, vmName); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); - when(vmSpec.getNics()).thenReturn(nics); - when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); - when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(InternalErrorException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } } @@
Original Test Code (click to expand)
@Test public void testStartCommandInternalError() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(InternalErrorException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

Test Case ID #cloudstack_Test_227_4

Test Case Name: testStartCommandUriException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ public void testStartCommandUriException() { - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(nics, VirtualMachine.Type.DomainRouter, vmName); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); - when(vmSpec.getNics()).thenReturn(nics); - when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); - when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(URISyntaxException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } } @@
Original Test Code (click to expand)
@Test public void testStartCommandUriException() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); doThrow(URISyntaxException.class).when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

Test Case ID #cloudstack_Test_227_5

Test Case Name: testStartCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(nics, VirtualMachine.Type.DomainRouter, vmName); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); - when(vmSpec.getNics()).thenReturn(nics); - when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); - when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); @@
Original Test Code (click to expand)
@Test public void testStartCommand() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); try { doNothing().when(libvirtComputingResourceMock).createVifs(vmSpec, vmDef); when(libvirtComputingResourceMock.startVM(conn, vmName, vmDef.toString())).thenReturn("SUCCESS"); when(vmSpec.getBootArgs()).thenReturn("ls -lart"); when(libvirtComputingResourceMock.passCmdLine(vmName, vmSpec.getBootArgs())).thenReturn(true); when(nic.getIp()).thenReturn(controlIp); when(nic.getType()).thenReturn(TrafficType.Control); when(libvirtComputingResourceMock.getVirtRouterResource()).thenReturn(virtRouterResource); when(virtRouterResource.connect(controlIp, 1, 5000)).thenReturn(true); when(virtRouterResource.isSystemVMSetup(vmName, controlIp)).thenReturn(true); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final LibvirtException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

Test Case ID #cloudstack_Test_227_6

Test Case Name: testStartCommandIsolationEc2(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(nics, VirtualMachine.Type.DomainRouter, vmName); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); - when(vmSpec.getNics()).thenReturn(nics); - when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); - when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); @@
Original Test Code (click to expand)
@Test public void testStartCommandIsolationEc2() throws Exception { PowerMockito.mockStatic(SshHelper.class); PowerMockito.doNothing().when(SshHelper.class, "scpTo", Mockito.anyString(), Mockito.anyInt(), Mockito.anyString(), Mockito.any(File.class), nullable(String.class), Mockito.anyString(), Mockito.any(String[].class), Mockito.anyString()); final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final VirtualRoutingResource virtRouterResource = Mockito.mock(VirtualRoutingResource.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; final int[] vms = new int[0]; final String vmName = "Test"; final String controlIp = "127.0.0.1"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.DomainRouter); when(vmSpec.getName()).thenReturn(vmName); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); try { doNothing().when(libvirtComputingResourceMock).createVifs(vmSpec, vmDef); when(libvirtComputingResourceMock.startVM(conn, vmName, vmDef.toString())).thenReturn("SUCCESS"); when(nic.isSecurityGroupEnabled()).thenReturn(true); when(nic.getIsolationUri()).thenReturn(new URI("ec2://test")); when(vmSpec.getBootArgs()).thenReturn("ls -lart"); when(libvirtComputingResourceMock.passCmdLine(vmName, vmSpec.getBootArgs())).thenReturn(true); when(nic.getIp()).thenReturn(controlIp); when(nic.getType()).thenReturn(TrafficType.Control); when(libvirtComputingResourceMock.getVirtRouterResource()).thenReturn(virtRouterResource); when(virtRouterResource.connect(controlIp, 1, 5000)).thenReturn(true); when(virtRouterResource.isSystemVMSetup(vmName, controlIp)).thenReturn(true); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByType(vmDef.getHvsType()); } catch (final LibvirtException e) { fail(e.getMessage()); } }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

Test Case ID #cloudstack_Test_227_7

Test Case Name: testStartCommandHostMemory(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- original +++ refactored @@ final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; int vmId = 1; final int[] vms = new int[] { vmId }; final Domain dm = Mockito.mock(Domain.class); final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); - final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); - when(vmSpec.getNics()).thenReturn(nics); - when(vmSpec.getType()).thenReturn(VirtualMachine.Type.User); - when(vmSpec.getName()).thenReturn(vmName); + final VirtualMachineTO vmSpec = createMockVirtualMachineTO(nics, VirtualMachine.Type.User, vmName); when(vmSpec.getMaxRam()).thenReturn(512L); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); when(conn.domainLookupByID(vmId)).thenReturn(dm); when(dm.getMaxMemory()).thenReturn(1024L); when(dm.getName()).thenReturn(vmName); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); @@
Original Test Code (click to expand)
@Test public void testStartCommandHostMemory() { final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); final boolean executeInSequence = false; final StartCommand command = new StartCommand(vmSpec, host, executeInSequence); final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final Connect conn = Mockito.mock(Connect.class); final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class); final NicTO nic = Mockito.mock(NicTO.class); final NicTO[] nics = new NicTO[] { nic }; int vmId = 1; final int[] vms = new int[] { vmId }; final Domain dm = Mockito.mock(Domain.class); final String vmName = "Test"; when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(VirtualMachine.Type.User); when(vmSpec.getName()).thenReturn(vmName); when(vmSpec.getMaxRam()).thenReturn(512L); when(libvirtComputingResourceMock.createVMFromSpec(vmSpec)).thenReturn(vmDef); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn); when(conn.listDomains()).thenReturn(vms); when(conn.domainLookupByID(vmId)).thenReturn(dm); when(dm.getMaxMemory()).thenReturn(1024L); when(dm.getName()).thenReturn(vmName); doNothing().when(libvirtComputingResourceMock).createVbd(conn, vmSpec, vmName, vmDef); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final InternalErrorException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics, VirtualMachine.Type type, String name) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getNics()).thenReturn(nics); when(vmSpec.getType()).thenReturn(type); when(vmSpec.getName()).thenReturn(name); return vmSpec; }

Mock Clone Instance #cloudstack_MCI_228

Reusable Method

private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics) { VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); when(vm.getNics()).thenReturn(nics); return vm; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_228_1

Test Case Name: testPrepareForMigrationCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); - final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } + final VirtualMachineTO vm = createMockVirtualMachineTO(new NicTO[] { nicTO }); - when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); @@
Original Test Code (click to expand)
@Test public void testPrepareForMigrationCommand() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics) { VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); when(vm.getNics()).thenReturn(nics); return vm; }

Test Case ID #cloudstack_Test_228_2

Test Case Name: testPrepareForMigrationCommandMigration(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); - final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vm = createMockVirtualMachineTO(new NicTO[] { nicTO }); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } - when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); when(storagePoolManager.connectPhysicalDisksViaVmSpec(vm)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); @@
Original Test Code (click to expand)
@Test public void testPrepareForMigrationCommandMigration() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); when(storagePoolManager.connectPhysicalDisksViaVmSpec(vm)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics) { VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); when(vm.getNics()).thenReturn(nics); return vm; }

Test Case ID #cloudstack_Test_228_3

Test Case Name: testPrepareForMigrationCommandLibvirtException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); - final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vm = createMockVirtualMachineTO(new NicTO[] { nicTO }); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } - when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPrepareForMigrationCommandLibvirtException() { final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenThrow(LibvirtException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics) { VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); when(vm.getNics()).thenReturn(nics); return vm; }

Test Case ID #cloudstack_Test_228_4

Test Case Name: testPrepareForMigrationCommandURISyntaxException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); - final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); + final VirtualMachineTO vm = createMockVirtualMachineTO(new NicTO[] { nicTO }); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } - when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { volume }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(volume.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenThrow(URISyntaxException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(volume, times(1)).getType(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPrepareForMigrationCommandURISyntaxException() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { volume }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(volume.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenThrow(URISyntaxException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(volume, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics) { VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); when(vm.getNics()).thenReturn(nics); return vm; }

Test Case ID #cloudstack_Test_228_5

Test Case Name: testPrepareForMigrationCommandInternalErrorException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: vm

Suggested Diff
--- original +++ refactored @@ final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); - final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } - when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); + final VirtualMachineTO vm = createMockVirtualMachineTO(new NicTO[] { nicTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); BDDMockito.given(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).willAnswer(invocationOnMock -> { throw new InternalErrorException("Exception Occurred"); }); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenReturn("/path"); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPrepareForMigrationCommandInternalErrorException() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); BDDMockito.given(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).willAnswer(invocationOnMock -> { throw new InternalErrorException("Exception Occurred"); }); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenReturn("/path"); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(NicTO[] nics) { VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); when(vm.getNics()).thenReturn(nics); return vm; }

Mock Clone Instance #cloudstack_MCI_229

Reusable Method

private static VirtualMachineTO createMockVirtualMachineTO(Map<String, String> details) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getDetails()).thenReturn(details); return vmSpec; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_229_1

Test Case Name: testScaleVMF1(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\com\cloud\hypervisor\vmware\resource\VmwareResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- Original +++ Refactored @@ when(hyperHost.findVmOnHyperHost("i-2-3-VM")).thenReturn(vmMo); - doReturn(536870912L).when(vmSpec).getMinRam(); + vmSpec = createMockVirtualMachineTO(specsArray); doReturn(1).when(vmSpec).getCpus(); doReturn(1000).when(vmSpec).getMinSpeed(); doReturn(1000).when(vmSpec).getMaxSpeed(); doReturn(536870912L).when(vmSpec).getMaxRam(); doReturn(false).when(vmSpec).getLimitCpuUse(); when(vmMo.configureVm(vmConfigSpec)).thenReturn(true); _resource.execute(cmd); verify(_resource).execute(cmd); @@
Original Test Code (click to expand)
@Before public void setup() throws Exception { MockitoAnnotations.initMocks(this); storageCmd = PowerMockito.mock(CopyCommand.class); doReturn(context).when(_resource).getServiceContext(null); when(cmd.getVirtualMachine()).thenReturn(vmSpec); when(storageCmd.getSrcTO()).thenReturn(srcDataTO); when(srcDataTO.getDataStore()).thenReturn(srcDataNfsTO); when(srcDataNfsTO.getNfsVersion()).thenReturn(NFS_VERSION); when(videoCard.getVideoRamSizeInKB()).thenReturn(VIDEO_CARD_MEMORY_SIZE); when(volume.getPath()).thenReturn(VOLUME_PATH); when(storageCmd.getDestTO()).thenReturn(destDataTO); when(destDataTO.getHypervisorType()).thenReturn(HypervisorType.VMware); when(destDataTO.getDataStore()).thenReturn(destDataStoreTO); when(destDataStoreTO.isFullCloneFlag()).thenReturn(FULL_CLONE_FLAG); when(volume.getPath()).thenReturn(VOLUME_PATH); when(vmSpec.getDetails()).thenReturn(specsArray); when(vmMo.getContext()).thenReturn(context); when(vmMo.getRunningHost()).thenReturn(host); when(host.getMor()).thenReturn(hostRef); when(context.getVimClient()).thenReturn(client); when(client.getMoRefProp(hostRef, "parent")).thenReturn(computeRef); when(client.getMoRefProp(computeRef, "environmentBrowser")).thenReturn(envRef); when(context.getService()).thenReturn(vimService); when(vimService.queryTargetCapabilities(envRef, hostRef)).thenReturn(hostCapability); when(hostCapability.isNestedHVSupported()).thenReturn(true); } //Test successful scaling up the vm @Test public void testScaleVMF1() throws Exception { when(_resource.getHyperHost(context, null)).thenReturn(hyperHost); doReturn("i-2-3-VM").when(cmd).getVmName(); when(hyperHost.findVmOnHyperHost("i-2-3-VM")).thenReturn(vmMo); doReturn(536870912L).when(vmSpec).getMinRam(); doReturn(1).when(vmSpec).getCpus(); doReturn(1000).when(vmSpec).getMinSpeed(); doReturn(1000).when(vmSpec).getMaxSpeed(); doReturn(536870912L).when(vmSpec).getMaxRam(); doReturn(false).when(vmSpec).getLimitCpuUse(); when(vmMo.configureVm(vmConfigSpec)).thenReturn(true); _resource.execute(cmd); verify(_resource).execute(cmd); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(Map<String, String> details) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getDetails()).thenReturn(details); return vmSpec; }

Test Case ID #cloudstack_Test_229_2

Test Case Name: testReplaceNicsMacSequenceInBootArgs(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\com\cloud\hypervisor\vmware\resource\VmwareResourceTest.java)

Mock Object Variable Name: vmSpec

Suggested Diff
--- Original.java +++ Refactored.java @@ @Test public void testReplaceNicsMacSequenceInBootArgs() { - doReturn(bootArgs).when(vmSpec).getBootArgs(); + vmSpec = createMockVirtualMachineTO(specsArray); + doReturn(bootArgs).when(vmSpec).getBootArgs(); String oldMacSequence = "7C02:00:35:fa:00:11|7C02:00:47:40:00:12"; String newMacSequence = "7C02:00:0c:1d:00:1d|7C02:00:68:0f:00:1e"; String updatedBootArgs = _resource.replaceNicsMacSequenceInBootArgs(oldMacSequence, newMacSequence, vmSpec); String newBootArgs = "nic_macs=02:00:65:b5:00:03|7C02:00:4f:1b:00:15|7C1e:00:54:00:00:0f|7C02:00:0c:1d:00:1d|7C02:00:68:0f:00:1e"; assertEquals(newBootArgs, updatedBootArgs); } @@
Original Test Code (click to expand)
@Test public void testReplaceNicsMacSequenceInBootArgs() { String bootArgs = "nic_macs=02:00:65:b5:00:03|7C02:00:4f:1b:00:15|7C1e:00:54:00:00:0f|7C02:00:35:fa:00:11|7C02:00:47:40:00:12"; doReturn(bootArgs).when(vmSpec).getBootArgs(); String oldMacSequence = "7C02:00:35:fa:00:11|7C02:00:47:40:00:12"; String newMacSequence = "7C02:00:0c:1d:00:1d|7C02:00:68:0f:00:1e"; String updatedBootArgs = _resource.replaceNicsMacSequenceInBootArgs(oldMacSequence, newMacSequence, vmSpec); String newBootArgs = "nic_macs=02:00:65:b5:00:03|7C02:00:4f:1b:00:15|7C1e:00:54:00:00:0f|7C02:00:0c:1d:00:1d|7C02:00:68:0f:00:1e"; assertEquals(newBootArgs, updatedBootArgs); } @Before public void setup() throws Exception { MockitoAnnotations.initMocks(this); storageCmd = PowerMockito.mock(CopyCommand.class); doReturn(context).when(_resource).getServiceContext(null); when(cmd.getVirtualMachine()).thenReturn(vmSpec); when(storageCmd.getSrcTO()).thenReturn(srcDataTO); when(srcDataTO.getDataStore()).thenReturn(srcDataNfsTO); when(srcDataNfsTO.getNfsVersion()).thenReturn(NFS_VERSION); when(videoCard.getVideoRamSizeInKB()).thenReturn(VIDEO_CARD_MEMORY_SIZE); when(volume.getPath()).thenReturn(VOLUME_PATH); when(storageCmd.getDestTO()).thenReturn(destDataTO); when(destDataTO.getHypervisorType()).thenReturn(HypervisorType.VMware); when(destDataTO.getDataStore()).thenReturn(destDataStoreTO); when(destDataStoreTO.isFullCloneFlag()).thenReturn(FULL_CLONE_FLAG); when(volume.getPath()).thenReturn(VOLUME_PATH); when(vmSpec.getDetails()).thenReturn(specsArray); when(vmMo.getContext()).thenReturn(context); when(vmMo.getRunningHost()).thenReturn(host); when(host.getMor()).thenReturn(hostRef); when(context.getVimClient()).thenReturn(client); when(client.getMoRefProp(hostRef, "parent")).thenReturn(computeRef); when(client.getMoRefProp(computeRef, "environmentBrowser")).thenReturn(envRef); when(context.getService()).thenReturn(vimService); when(vimService.queryTargetCapabilities(envRef, hostRef)).thenReturn(hostCapability); when(hostCapability.isNestedHVSupported()).thenReturn(true); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(Map<String, String> details) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getDetails()).thenReturn(details); return vmSpec; }

Test Case ID #cloudstack_Test_229_3

Test Case Name: testConfigureVideoCardSvgaVramProvided(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\com\cloud\hypervisor\vmware\resource\VmwareResourceTest.java)

Mock Object Variable Name: vmSpec3dgpu

Suggested Diff
@@ Map<String, String> specDetails = new HashMap<String, String>(); specDetails.put("svga.vramSize", String.valueOf(VRAM_MEMORY_SIZE)); - when(vmSpec3dgpu.getDetails()).thenReturn(specDetails); + vmSpec3dgpu = createMockVirtualMachineTO(specDetails); _resource.configureVideoCard(vmMo3dgpu, vmSpec3dgpu, vmConfigSpec); verify(_resource).setNewVRamSizeVmVideoCard(vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec); }
Original Test Code (click to expand)
@Test public void testConfigureVideoCardSvgaVramProvided() throws Exception { Map<String, String> specDetails = new HashMap<String, String>(); specDetails.put("svga.vramSize", String.valueOf(VRAM_MEMORY_SIZE)); when(vmSpec3dgpu.getDetails()).thenReturn(specDetails); _resource.configureVideoCard(vmMo3dgpu, vmSpec3dgpu, vmConfigSpec); verify(_resource).setNewVRamSizeVmVideoCard(vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec); }
Reusable Method for MCI (click to expand)
private static VirtualMachineTO createMockVirtualMachineTO(Map<String, String> details) { VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class); when(vmSpec.getDetails()).thenReturn(details); return vmSpec; }

Mock Clone Instance #cloudstack_MCI_230

Reusable Method

private static VolumeInfo createMockVolumeInfoWithState(com.cloud.storage.Volume.State state) { VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); when(volumeInfo.getState()).thenReturn(state); return volumeInfo; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_230_1

Test Case Name: testResourceLimitCheckForUploadedVolume(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: volumeToAttach

Suggested Diff
--- original +++ refactored @@ UserVmVO vm = Mockito.mock(UserVmVO.class); AccountVO acc = Mockito.mock(AccountVO.class); - VolumeInfo volumeToAttach = Mockito.mock(VolumeInfo.class); - lenient().when(volumeToAttach.getId()).thenReturn(9L); - when(volumeToAttach.getDataCenterId()).thenReturn(34L); - when(volumeToAttach.getVolumeType()).thenReturn(Volume.Type.DATADISK); - when(volumeToAttach.getInstanceId()).thenReturn(null); - when(volumeToAttach.getAccountId()).thenReturn(3L); + VolumeInfo volumeToAttach = createMockVolumeInfoWithState(Volume.State.Uploaded); + lenient().when(volumeToAttach.getId()).thenReturn(9L); + when(volumeToAttach.getDataCenterId()).thenReturn(34L); + when(volumeToAttach.getVolumeType()).thenReturn(Volume.Type.DATADISK); + when(volumeToAttach.getInstanceId()).thenReturn(null); + when(volumeToAttach.getAccountId()).thenReturn(3L); when(_accountDao.findById(anyLong())).thenReturn(acc); when(userVmDaoMock.findById(anyLong())).thenReturn(vm); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(vm.getState()).thenReturn(State.Running); when(vm.getDataCenterId()).thenReturn(34L); when(vm.getBackupOfferingId()).thenReturn(null); when(vm.getBackupVolumeList()).thenReturn(Collections.emptyList()); when(volumeDaoMock.findByInstanceAndType(anyLong(), any(Volume.Type.class))).thenReturn(new ArrayList<>(10)); when(volumeDataFactoryMock.getVolume(9L)).thenReturn(volumeToAttach); - when(volumeToAttach.getState()).thenReturn(Volume.State.Uploaded); DataCenterVO zoneWithDisabledLocalStorage = Mockito.mock(DataCenterVO.class); when(_dcDao.findById(anyLong())).thenReturn(zoneWithDisabledLocalStorage); when(zoneWithDisabledLocalStorage.isLocalStorageEnabled()).thenReturn(true); @@
Original Test Code (click to expand)
/** * The resource limit check for primary storage should not be skipped for Volume in 'Uploaded' state. */ @Test public void testResourceLimitCheckForUploadedVolume() throws NoSuchFieldException, IllegalAccessException, ResourceAllocationException { doThrow(new ResourceAllocationException("primary storage resource limit check failed", Resource.ResourceType.primary_storage)).when(resourceLimitServiceMock).checkResourceLimit(any(AccountVO.class), any(Resource.ResourceType.class), any(Long.class)); UserVmVO vm = Mockito.mock(UserVmVO.class); AccountVO acc = Mockito.mock(AccountVO.class); VolumeInfo volumeToAttach = Mockito.mock(VolumeInfo.class); lenient().when(volumeToAttach.getId()).thenReturn(9L); when(volumeToAttach.getDataCenterId()).thenReturn(34L); when(volumeToAttach.getVolumeType()).thenReturn(Volume.Type.DATADISK); when(volumeToAttach.getInstanceId()).thenReturn(null); when(volumeToAttach.getAccountId()).thenReturn(3L); when(_accountDao.findById(anyLong())).thenReturn(acc); when(userVmDaoMock.findById(anyLong())).thenReturn(vm); when(vm.getType()).thenReturn(VirtualMachine.Type.User); when(vm.getState()).thenReturn(State.Running); when(vm.getDataCenterId()).thenReturn(34L); when(vm.getBackupOfferingId()).thenReturn(null); when(vm.getBackupVolumeList()).thenReturn(Collections.emptyList()); when(volumeDaoMock.findByInstanceAndType(anyLong(), any(Volume.Type.class))).thenReturn(new ArrayList<>(10)); when(volumeDataFactoryMock.getVolume(9L)).thenReturn(volumeToAttach); when(volumeToAttach.getState()).thenReturn(Volume.State.Uploaded); DataCenterVO zoneWithDisabledLocalStorage = Mockito.mock(DataCenterVO.class); when(_dcDao.findById(anyLong())).thenReturn(zoneWithDisabledLocalStorage); when(zoneWithDisabledLocalStorage.isLocalStorageEnabled()).thenReturn(true); try { volumeApiServiceImpl.attachVolumeToVM(2L, 9L, null); } catch (InvalidParameterValueException e) { Assert.assertEquals(e.getMessage(), ("primary storage resource limit check failed")); } }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfoWithState(com.cloud.storage.Volume.State state) { VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); when(volumeInfo.getState()).thenReturn(state); return volumeInfo; }

Test Case ID #cloudstack_Test_230_2

Test Case Name: testTakeSnapshotF1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: volumeInfoMock

Suggested Diff
@@ when(volumeDataFactoryMock.getVolume(anyLong())).thenReturn(volumeInfoMock); - when(volumeInfoMock.getState()).thenReturn(Volume.State.Allocated); - lenient().when(volumeInfoMock.getPoolId()).thenReturn(1L); + volumeInfoMock = createMockVolumeInfoWithState(Volume.State.Allocated); + lenient().when(volumeInfoMock.getPoolId()).thenReturn(1L); volumeApiServiceImpl.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false, null, false, null);
Original Test Code (click to expand)
// volume not Ready @Test(expected = InvalidParameterValueException.class) public void testTakeSnapshotF1() throws ResourceAllocationException { when(volumeDataFactoryMock.getVolume(anyLong())).thenReturn(volumeInfoMock); when(volumeInfoMock.getState()).thenReturn(Volume.State.Allocated); lenient().when(volumeInfoMock.getPoolId()).thenReturn(1L); volumeApiServiceImpl.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false, null, false, null); }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfoWithState(com.cloud.storage.Volume.State state) { VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); when(volumeInfo.getState()).thenReturn(state); return volumeInfo; }

Test Case ID #cloudstack_Test_230_3

Test Case Name: testTakeSnapshotF2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: volumeInfoMock

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ @Test public void testTakeSnapshotF2() throws ResourceAllocationException { when(volumeDataFactoryMock.getVolume(anyLong())).thenReturn(volumeInfoMock); - when(volumeInfoMock.getState()).thenReturn(Volume.State.Ready); + volumeInfoMock = createMockVolumeInfoWithState(Volume.State.Ready); when(volumeInfoMock.getInstanceId()).thenReturn(null); when(volumeInfoMock.getPoolId()).thenReturn(1L); when(volumeServiceMock.takeSnapshot(Mockito.any(VolumeInfo.class))).thenReturn(snapshotInfoMock); final TaggedResourceService taggedResourceService = Mockito.mock(TaggedResourceService.class); Mockito.lenient().when(taggedResourceService.createTags(anyObject(), anyObject(), anyObject(), anyObject())).thenReturn(null); ReflectionTestUtils.setField(volumeApiServiceImpl, "taggedResourceService", taggedResourceService); volumeApiServiceImpl.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false, null, false, null); } @@
Original Test Code (click to expand)
@Test public void testTakeSnapshotF2() throws ResourceAllocationException { when(volumeDataFactoryMock.getVolume(anyLong())).thenReturn(volumeInfoMock); when(volumeInfoMock.getState()).thenReturn(Volume.State.Ready); when(volumeInfoMock.getInstanceId()).thenReturn(null); when(volumeInfoMock.getPoolId()).thenReturn(1L); when(volumeServiceMock.takeSnapshot(Mockito.any(VolumeInfo.class))).thenReturn(snapshotInfoMock); final TaggedResourceService taggedResourceService = Mockito.mock(TaggedResourceService.class); Mockito.lenient().when(taggedResourceService.createTags(anyObject(), anyObject(), anyObject(), anyObject())).thenReturn(null); ReflectionTestUtils.setField(volumeApiServiceImpl, "taggedResourceService", taggedResourceService); volumeApiServiceImpl.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false, null, false, null); }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfoWithState(com.cloud.storage.Volume.State state) { VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); when(volumeInfo.getState()).thenReturn(state); return volumeInfo; }

Mock Clone Instance #cloudstack_MCI_231

Reusable Method

private static VolumeInfo createMockVolumeInfo(DataStore dataStoreMock) { VolumeInfo volumeInfoMock = Mockito.mock(VolumeInfo.class); Mockito.doReturn(dataStoreMock).when(volumeInfoMock).getDataStore(); return volumeInfoMock; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_231_1

Test Case Name: cleanVolumesCacheTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: volumeInfoMock1

Suggested Diff
--- original +++ refactored @@ List<VolumeInfo> volumeInfos = new ArrayList<>(); - VolumeInfo volumeInfoMock1 = Mockito.mock(VolumeInfo.class); + VolumeInfo volumeInfoMock1 = createMockVolumeInfo(dataStoreMock1); VolumeInfo volumeInfoMock2 = Mockito.mock(VolumeInfo.class); DataStore dataStoreMock1 = Mockito.mock(DataStore.class); DataStore dataStoreMock2 = Mockito.mock(DataStore.class); - Mockito.doReturn(dataStoreMock1).when(volumeInfoMock1).getDataStore(); Mockito.doReturn(dataStoreMock2).when(volumeInfoMock2).getDataStore(); volumeInfos.add(volumeInfoMock1); volumeInfos.add(volumeInfoMock2); Mockito.doReturn(volumeInfos).when(volumeDataFactoryMock).listVolumeOnCache(volumeMockId); volumeApiServiceImpl.cleanVolumesCache(volumeVoMock); Mockito.verify(dataStoreMock1).getName(); Mockito.verify(dataStoreMock2).getName(); Mockito.verify(volumeInfoMock1).delete(); Mockito.verify(volumeInfoMock2).delete(); @@
Original Test Code (click to expand)
@Test public void cleanVolumesCacheTest() { List<VolumeInfo> volumeInfos = new ArrayList<>(); VolumeInfo volumeInfoMock1 = Mockito.mock(VolumeInfo.class); VolumeInfo volumeInfoMock2 = Mockito.mock(VolumeInfo.class); DataStore dataStoreMock1 = Mockito.mock(DataStore.class); DataStore dataStoreMock2 = Mockito.mock(DataStore.class); Mockito.doReturn(dataStoreMock1).when(volumeInfoMock1).getDataStore(); Mockito.doReturn(dataStoreMock2).when(volumeInfoMock2).getDataStore(); volumeInfos.add(volumeInfoMock1); volumeInfos.add(volumeInfoMock2); Mockito.doReturn(volumeInfos).when(volumeDataFactoryMock).listVolumeOnCache(volumeMockId); volumeApiServiceImpl.cleanVolumesCache(volumeVoMock); Mockito.verify(dataStoreMock1).getName(); Mockito.verify(dataStoreMock2).getName(); Mockito.verify(volumeInfoMock1).delete(); Mockito.verify(volumeInfoMock2).delete(); }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfo(DataStore dataStoreMock) { VolumeInfo volumeInfoMock = Mockito.mock(VolumeInfo.class); Mockito.doReturn(dataStoreMock).when(volumeInfoMock).getDataStore(); return volumeInfoMock; }

Test Case ID #cloudstack_Test_231_2

Test Case Name: cleanVolumesCacheTest(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\storage\VolumeApiServiceImplTest.java)

Mock Object Variable Name: volumeInfoMock2

Suggested Diff
--- original +++ refactored @@ List<VolumeInfo> volumeInfos = new ArrayList<>(); VolumeInfo volumeInfoMock1 = Mockito.mock(VolumeInfo.class); - VolumeInfo volumeInfoMock2 = Mockito.mock(VolumeInfo.class); DataStore dataStoreMock1 = Mockito.mock(DataStore.class); DataStore dataStoreMock2 = Mockito.mock(DataStore.class); Mockito.doReturn(dataStoreMock1).when(volumeInfoMock1).getDataStore(); - Mockito.doReturn(dataStoreMock2).when(volumeInfoMock2).getDataStore(); + VolumeInfo volumeInfoMock2 = createMockVolumeInfo(dataStoreMock2); volumeInfos.add(volumeInfoMock1); volumeInfos.add(volumeInfoMock2); Mockito.doReturn(volumeInfos).when(volumeDataFactoryMock).listVolumeOnCache(volumeMockId); volumeApiServiceImpl.cleanVolumesCache(volumeVoMock); Mockito.verify(dataStoreMock1).getName(); Mockito.verify(dataStoreMock2).getName(); Mockito.verify(volumeInfoMock1).delete(); Mockito.verify(volumeInfoMock2).delete(); @@
Original Test Code (click to expand)
@Test public void cleanVolumesCacheTest() { List<VolumeInfo> volumeInfos = new ArrayList<>(); VolumeInfo volumeInfoMock1 = Mockito.mock(VolumeInfo.class); VolumeInfo volumeInfoMock2 = Mockito.mock(VolumeInfo.class); DataStore dataStoreMock1 = Mockito.mock(DataStore.class); DataStore dataStoreMock2 = Mockito.mock(DataStore.class); Mockito.doReturn(dataStoreMock1).when(volumeInfoMock1).getDataStore(); Mockito.doReturn(dataStoreMock2).when(volumeInfoMock2).getDataStore(); volumeInfos.add(volumeInfoMock1); volumeInfos.add(volumeInfoMock2); Mockito.doReturn(volumeInfos).when(volumeDataFactoryMock).listVolumeOnCache(volumeMockId); volumeApiServiceImpl.cleanVolumesCache(volumeVoMock); Mockito.verify(dataStoreMock1).getName(); Mockito.verify(dataStoreMock2).getName(); Mockito.verify(volumeInfoMock1).delete(); Mockito.verify(volumeInfoMock2).delete(); }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfo(DataStore dataStoreMock) { VolumeInfo volumeInfoMock = Mockito.mock(VolumeInfo.class); Mockito.doReturn(dataStoreMock).when(volumeInfoMock).getDataStore(); return volumeInfoMock; }

Mock Clone Instance #cloudstack_MCI_232

Reusable Method

private static VolumeInfo createMockVolumeInfo(String uuidReturn) { VolumeInfo vol = Mockito.mock(VolumeInfo.class); when(vol.getUuid()).thenReturn(uuidReturn); return vol; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_232_1

Test Case Name: testCreateDiskSnapshotBasedOnStrategy(File: C:\Java_projects\Apache\cloudstack\engine\storage\snapshot\src\test\java\org\apache\cloudstack\storage\vmsnapshot\VMSnapshotStrategyKVMTest.java)

Mock Object Variable Name: vol

Suggested Diff
--- original +++ refactored @@ VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); List<SnapshotInfo> forRollback = new ArrayList<>(); - VolumeInfo vol = Mockito.mock(VolumeInfo.class); + VolumeInfo vol = createMockVolumeInfo(volUuid); SnapshotInfo snapshotInfo = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); SnapshotVO snapshot = new SnapshotVO(vol.getDataCenterId(), vol.getAccountId(), vol.getDomainId(), vol.getId(), vol.getDiskOfferingId(), vmUuid + "_" + volUuid, (short) SnapshotVO.MANUAL_POLICY_ID, "MANUAL", vol.getSize(), vol.getMinIops(), vol.getMaxIops(), Hypervisor.HypervisorType.KVM, null); PowerMockito.whenNew(SnapshotVO.class).withAnyArguments().thenReturn(snapshot); when(vmSnapshot.getUuid()).thenReturn(vmUuid); - when(vol.getUuid()).thenReturn(volUuid); when(_snapshotDao.persist(any())).thenReturn(snapshot); + when(vol.getDataStore()).thenReturn(dataStore); when(_snapshotDataFactory.getSnapshot(snapshot.getId(), vol.getDataStore())).thenReturn(snapshotInfo); when(_storageStrategyFactory.getSnapshotStrategy(snapshotInfo, SnapshotOperation.TAKE)).thenReturn(strategy); SnapshotInfo info = null; when(strategy.takeSnapshot(any())).thenReturn(snapshotInfo); VMSnapshotDetailsVO vmDetails = new VMSnapshotDetailsVO(vmSnapshot.getId(), volUuid, String.valueOf(snapshot.getId()), false); PowerMockito.whenNew(VMSnapshotDetailsVO.class).withAnyArguments().thenReturn(vmDetails); when(vmSnapshotDetailsDao.persist(any())).thenReturn(vmDetails); info = vmStrategy.createDiskSnapshot(vmSnapshot, forRollback, vol); assertNotNull(info); @@
Original Test Code (click to expand)
@Test public void testCreateDiskSnapshotBasedOnStrategy() throws Exception { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); List<SnapshotInfo> forRollback = new ArrayList<>(); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotInfo snapshotInfo = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); SnapshotVO snapshot = new SnapshotVO(vol.getDataCenterId(), vol.getAccountId(), vol.getDomainId(), vol.getId(), vol.getDiskOfferingId(), vmUuid + "_" + volUuid, (short) SnapshotVO.MANUAL_POLICY_ID, "MANUAL", vol.getSize(), vol.getMinIops(), vol.getMaxIops(), Hypervisor.HypervisorType.KVM, null); PowerMockito.whenNew(SnapshotVO.class).withAnyArguments().thenReturn(snapshot); when(vmSnapshot.getUuid()).thenReturn(vmUuid); when(vol.getUuid()).thenReturn(volUuid); when(_snapshotDao.persist(any())).thenReturn(snapshot); when(vol.getDataStore()).thenReturn(dataStore); when(_snapshotDataFactory.getSnapshot(snapshot.getId(), vol.getDataStore())).thenReturn(snapshotInfo); when(_storageStrategyFactory.getSnapshotStrategy(snapshotInfo, SnapshotOperation.TAKE)).thenReturn(strategy); SnapshotInfo info = null; when(strategy.takeSnapshot(any())).thenReturn(snapshotInfo); VMSnapshotDetailsVO vmDetails = new VMSnapshotDetailsVO(vmSnapshot.getId(), volUuid, String.valueOf(snapshot.getId()), false); PowerMockito.whenNew(VMSnapshotDetailsVO.class).withAnyArguments().thenReturn(vmDetails); when(vmSnapshotDetailsDao.persist(any())).thenReturn(vmDetails); info = vmStrategy.createDiskSnapshot(vmSnapshot, forRollback, vol); assertNotNull(info); }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfo(String uuidReturn) { VolumeInfo vol = Mockito.mock(VolumeInfo.class); when(vol.getUuid()).thenReturn(uuidReturn); return vol; }

Test Case ID #cloudstack_Test_232_2

Test Case Name: testRevertDiskSnapshot(File: C:\Java_projects\Apache\cloudstack\engine\storage\snapshot\src\test\java\org\apache\cloudstack\storage\vmsnapshot\VMSnapshotStrategyKVMTest.java)

Mock Object Variable Name: vol

Suggested Diff
--- original +++ refactored @@ VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); - VolumeInfo vol = Mockito.mock(VolumeInfo.class); + VolumeInfo vol = createMockVolumeInfo(volUuid); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; - when(vol.getUuid()).thenReturn(volUuid); when(vmSnapshot.getUuid()).thenReturn(vmUuid); - when(vol.getDataStore()).thenReturn(dataStore); + when(vol.getDataStore()).thenReturn(dataStore); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotService.revertSnapshot(snapshotVO.getId())).thenReturn(snap); // testFindSnapshotByName(name); vmStrategy.revertDiskSnapshot(vmSnapshot); @@
Original Test Code (click to expand)
@Test public void testRevertDiskSnapshot() throws Exception { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); DataStore dataStore = Mockito.mock(DataStore.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; when(vol.getUuid()).thenReturn(volUuid); when(vmSnapshot.getUuid()).thenReturn(vmUuid); when(vol.getDataStore()).thenReturn(dataStore); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotService.revertSnapshot(snapshotVO.getId())).thenReturn(snap); // testFindSnapshotByName(name); vmStrategy.revertDiskSnapshot(vmSnapshot); }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfo(String uuidReturn) { VolumeInfo vol = Mockito.mock(VolumeInfo.class); when(vol.getUuid()).thenReturn(uuidReturn); return vol; }

Test Case ID #cloudstack_Test_232_3

Test Case Name: testDeleteDiskSnapshot(File: C:\Java_projects\Apache\cloudstack\engine\storage\snapshot\src\test\java\org\apache\cloudstack\storage\vmsnapshot\VMSnapshotStrategyKVMTest.java)

Mock Object Variable Name: vol

Suggested Diff
--- original +++ refactored @@ VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); - VolumeInfo vol = Mockito.mock(VolumeInfo.class); + VolumeInfo vol = createMockVolumeInfo(volUuid); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); SnapshotInfo info = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; - when(vol.getUuid()).thenReturn(volUuid); when(vmSnapshot.getUuid()).thenReturn(vmUuid); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotDataFactory.getSnapshot(snapshotVO.getId(), vol.getDataStore())).thenReturn(info); when(_storageStrategyFactory.getSnapshotStrategy(info, SnapshotOperation.DELETE)).thenReturn(strategy); testFindSnapshotByName(name); vmStrategy.deleteDiskSnapshot(vmSnapshot); @@
Original Test Code (click to expand)
@Test public void testDeleteDiskSnapshot() { VMSnapshot vmSnapshot = Mockito.mock(VMSnapshot.class); VolumeInfo vol = Mockito.mock(VolumeInfo.class); SnapshotVO snapshotVO = Mockito.mock(SnapshotVO.class); Snapshot snap = Mockito.mock(Snapshot.class); SnapshotInfo info = Mockito.mock(SnapshotInfo.class); SnapshotStrategy strategy = Mockito.mock(SnapshotStrategy.class); String volUuid = UUID.randomUUID().toString(); String vmUuid = UUID.randomUUID().toString(); String name = vmUuid + "_" + volUuid; when(vol.getUuid()).thenReturn(volUuid); when(vmSnapshot.getUuid()).thenReturn(vmUuid); when(snapshotVO.getId()).thenReturn(1L); when(_snapshotDataFactory.getSnapshot(snapshotVO.getId(), vol.getDataStore())).thenReturn(info); when(_storageStrategyFactory.getSnapshotStrategy(info, SnapshotOperation.DELETE)).thenReturn(strategy); testFindSnapshotByName(name); vmStrategy.deleteDiskSnapshot(vmSnapshot); }
Reusable Method for MCI (click to expand)
private static VolumeInfo createMockVolumeInfo(String uuidReturn) { VolumeInfo vol = Mockito.mock(VolumeInfo.class); when(vol.getUuid()).thenReturn(uuidReturn); return vol; }

Mock Clone Instance #cloudstack_MCI_233

Reusable Method

public class MockVolumeInfo { public static VolumeInfo createMockVolumeInfo(Long poolIdReturn) { VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); Mockito.when(volumeInfo.getPoolId()).thenReturn(poolIdReturn); return volumeInfo; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_233_1

Test Case Name: canHandleKVMLiveStorageMigrationMultipleSources(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\KvmNonManagedStorageSystemDataMotionTest.java)

Mock Object Variable Name: volumeInfo1

Suggested Diff
--- Original +++ Refactored @@ migrationMap = new HashMap<>(); - migrationMap.put(volumeInfo1, dataStore2); migrationMap.put(volumeInfo2, dataStore2); - when(volumeInfo1.getPoolId()).thenReturn(POOL_1_ID); when(primaryDataStoreDao.findById(POOL_1_ID)).thenReturn(pool1); when(pool1.isManaged()).thenReturn(false); when(dataStore2.getId()).thenReturn(POOL_2_ID); when(primaryDataStoreDao.findById(POOL_2_ID)).thenReturn(pool2); when(pool2.isManaged()).thenReturn(true); - when(volumeInfo1.getDataStore()).thenReturn(dataStore1); when(volumeInfo2.getPoolId()).thenReturn(POOL_1_ID); lenient().when(volumeInfo2.getDataStore()).thenReturn(dataStore1); lenient().when(dataStore1.getId()).thenReturn(POOL_1_ID); when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); lenient().when(dataStore3.getId()).thenReturn(POOL_3_ID); lenient().when(primaryDataStoreDao.findById(POOL_3_ID)).thenReturn(pool3); lenient().when(pool3.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); lenient().when(pool3.getScope()).thenReturn(ScopeType.CLUSTER); when(host1.getId()).thenReturn(HOST_1_ID); when(host1.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(host2.getId()).thenReturn(HOST_2_ID); when(host2.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); @@ public void canHandleKVMLiveStorageMigrationMultipleSources() { + volumeInfo1 = MockVolumeInfo.createMockVolumeInfo(POOL_1_ID); + migrationMap.put(volumeInfo1, dataStore2); + when(volumeInfo1.getDataStore()).thenReturn(dataStore1); lenient().when(volumeInfo1.getDataStore()).thenReturn(dataStore2); StrategyPriority priority = kvmNonManagedStorageDataMotionStrategy.canHandleKVMNonManagedLiveNFSStorageMigration(migrationMap, host1, host2); assertEquals(StrategyPriority.HYPERVISOR, priority); }
Original Test Code (click to expand)
@Before public void setUp() { migrationMap = new HashMap<>(); migrationMap.put(volumeInfo1, dataStore2); migrationMap.put(volumeInfo2, dataStore2); when(volumeInfo1.getPoolId()).thenReturn(POOL_1_ID); when(primaryDataStoreDao.findById(POOL_1_ID)).thenReturn(pool1); when(pool1.isManaged()).thenReturn(false); when(dataStore2.getId()).thenReturn(POOL_2_ID); when(primaryDataStoreDao.findById(POOL_2_ID)).thenReturn(pool2); when(pool2.isManaged()).thenReturn(true); when(volumeInfo1.getDataStore()).thenReturn(dataStore1); when(volumeInfo2.getPoolId()).thenReturn(POOL_1_ID); lenient().when(volumeInfo2.getDataStore()).thenReturn(dataStore1); lenient().when(dataStore1.getId()).thenReturn(POOL_1_ID); when(pool1.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); when(pool2.getScope()).thenReturn(ScopeType.CLUSTER); lenient().when(dataStore3.getId()).thenReturn(POOL_3_ID); lenient().when(primaryDataStoreDao.findById(POOL_3_ID)).thenReturn(pool3); lenient().when(pool3.getPoolType()).thenReturn(Storage.StoragePoolType.NetworkFilesystem); lenient().when(pool3.getScope()).thenReturn(ScopeType.CLUSTER); when(host1.getId()).thenReturn(HOST_1_ID); when(host1.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); when(host2.getId()).thenReturn(HOST_2_ID); when(host2.getClusterId()).thenReturn(CLUSTER_ID); lenient().when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM); } @Test public void canHandleKVMLiveStorageMigrationMultipleSources() { lenient().when(volumeInfo1.getDataStore()).thenReturn(dataStore2); StrategyPriority priority = kvmNonManagedStorageDataMotionStrategy.canHandleKVMNonManagedLiveNFSStorageMigration(migrationMap, host1, host2); assertEquals(StrategyPriority.HYPERVISOR, priority); }
Reusable Method for MCI (click to expand)
public class MockVolumeInfo { public static VolumeInfo createMockVolumeInfo(Long poolIdReturn) { VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); Mockito.when(volumeInfo.getPoolId()).thenReturn(poolIdReturn); return volumeInfo; } }

Test Case ID #cloudstack_Test_233_2

Test Case Name: formatEntryOfVolumesAndStoragesAsJsonToDisplayOnLogValidateFormat(File: C:\Java_projects\Apache\cloudstack\engine\storage\datamotion\src\test\java\org\apache\cloudstack\storage\motion\StorageSystemDataMotionStrategyTest.java)

Mock Object Variable Name: volumeInfo

Suggested Diff
--- original +++ refactored @@ Long volume = 1L, from = 2L, to = 3L; - VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); + VolumeInfo volumeInfo = MockVolumeInfo.createMockVolumeInfo(from); DataStore dataStore = Mockito.mock(DataStore.class); - Mockito.when(volumeInfo.getId()).thenReturn(volume); + Mockito.when(volumeInfo.getId()).thenReturn(volume); Mockito.when(volumeInfo.getPoolId()).thenReturn(from); Mockito.when(dataStore.getId()).thenReturn(to); Assert.assertEquals(String.format("{volume: \"%s\", from: \"%s\", to:\"%s\"}", volume, from, to), strategy.formatEntryOfVolumesAndStoragesAsJsonToDisplayOnLog(new AbstractMap.SimpleEntry<>(volumeInfo, dataStore))); @@
Original Test Code (click to expand)
@Test public void formatEntryOfVolumesAndStoragesAsJsonToDisplayOnLogValidateFormat() { Long volume = 1L, from = 2L, to = 3L; VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); DataStore dataStore = Mockito.mock(DataStore.class); Mockito.when(volumeInfo.getId()).thenReturn(volume); Mockito.when(volumeInfo.getPoolId()).thenReturn(from); Mockito.when(dataStore.getId()).thenReturn(to); Assert.assertEquals(String.format("{volume: \"%s\", from: \"%s\", to:\"%s\"}", volume, from, to), strategy.formatEntryOfVolumesAndStoragesAsJsonToDisplayOnLog(new AbstractMap.SimpleEntry<>(volumeInfo, dataStore))); }
Reusable Method for MCI (click to expand)
public class MockVolumeInfo { public static VolumeInfo createMockVolumeInfo(Long poolIdReturn) { VolumeInfo volumeInfo = Mockito.mock(VolumeInfo.class); Mockito.when(volumeInfo.getPoolId()).thenReturn(poolIdReturn); return volumeInfo; } }

Mock Clone Instance #cloudstack_MCI_234

Reusable Method

// === Declare in class scope === private LoggingEvent event; // === Add to @BeforeEach method === @BeforeEach public void setUp() { event = mock(LoggingEvent.class); } // === Replace local variable in test with === event;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_234_1

Test Case Name: parseAlertTest(File: C:\Java_projects\Apache\cloudstack\plugins\alert-handlers\snmp-alerts\src\test\java\org\apache\cloudstack\alert\snmp\SnmpEnhancedPatternLayoutTest.java)

Mock Object Variable Name: event

Suggested Diff
@@ @Test public void parseAlertTest() { - LoggingEvent event = mock(LoggingEvent.class); + // removed local mock; replaced with global field `event` setMessage(" alertType:: 14 // dataCenterId:: 1 // podId:: 1 // " + "clusterId:: null // message:: Management" + " network CIDR is not configured originally. Set it default to 10.102.192.0/22", event); SnmpTrapInfo info = _snmpEnhancedPatternLayout.parseEvent(event); commonAssertions(info, "Management network CIDR is not configured originally. Set it default to 10.102.192" + ".0/22"); }
Original Test Code (click to expand)
@Test public void parseAlertTest() { LoggingEvent event = mock(LoggingEvent.class); setMessage(" alertType:: 14 // dataCenterId:: 1 // podId:: 1 // " + "clusterId:: null // message:: Management" + " network CIDR is not configured originally. Set it default to 10.102.192.0/22", event); SnmpTrapInfo info = _snmpEnhancedPatternLayout.parseEvent(event); commonAssertions(info, "Management network CIDR is not configured originally. Set it default to 10.102.192" + ".0/22"); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private LoggingEvent event; // === Add to @BeforeEach method === @BeforeEach public void setUp() { event = mock(LoggingEvent.class); } // === Replace local variable in test with === event;

Test Case ID #cloudstack_Test_234_2

Test Case Name: ParseAlertWithPairDelimeterInMessageTest(File: C:\Java_projects\Apache\cloudstack\plugins\alert-handlers\snmp-alerts\src\test\java\org\apache\cloudstack\alert\snmp\SnmpEnhancedPatternLayoutTest.java)

Mock Object Variable Name: event

Suggested Diff
@@ @Test public void ParseAlertWithPairDelimeterInMessageTest() { - LoggingEvent event = mock(LoggingEvent.class); + // removed local mock; replaced with global field `event` setMessage(" alertType:: 14 // dataCenterId:: 1 // podId:: 1 // " + "clusterId:: null // message:: Management" + " //network CIDR is not configured originally. Set it default to 10.102.192.0/22", event); SnmpTrapInfo info = _snmpEnhancedPatternLayout.parseEvent(event); commonAssertions(info, "Management //network CIDR is not configured originally. Set it default to 10.102.192" + ".0/22"); }
Original Test Code (click to expand)
@Test public void ParseAlertWithPairDelimeterInMessageTest() { LoggingEvent event = mock(LoggingEvent.class); setMessage(" alertType:: 14 // dataCenterId:: 1 // podId:: 1 // " + "clusterId:: null // message:: Management" + " //network CIDR is not configured originally. Set it default to 10.102.192.0/22", event); SnmpTrapInfo info = _snmpEnhancedPatternLayout.parseEvent(event); commonAssertions(info, "Management //network CIDR is not configured originally. Set it default to 10.102.192" + ".0/22"); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private LoggingEvent event; // === Add to @BeforeEach method === @BeforeEach public void setUp() { event = mock(LoggingEvent.class); } // === Replace local variable in test with === event;

Test Case ID #cloudstack_Test_234_3

Test Case Name: ParseAlertWithKeyValueDelimeterInMessageTest(File: C:\Java_projects\Apache\cloudstack\plugins\alert-handlers\snmp-alerts\src\test\java\org\apache\cloudstack\alert\snmp\SnmpEnhancedPatternLayoutTest.java)

Mock Object Variable Name: event

Suggested Diff
@@ @Test public void ParseAlertWithKeyValueDelimeterInMessageTest() { - LoggingEvent event = mock(LoggingEvent.class); + // removed local mock; replaced with global field `event` setMessage(" alertType:: 14 // dataCenterId:: 1 // podId:: 1 // " + "clusterId:: null // message:: Management" + " ::network CIDR is not configured originally. Set it default to 10.102.192.0/22", event); SnmpTrapInfo info = _snmpEnhancedPatternLayout.parseEvent(event); commonAssertions(info, "Management ::network CIDR is not configured originally. Set it default to 10.102.192" + ".0/22"); }
Original Test Code (click to expand)
@Test public void ParseAlertWithKeyValueDelimeterInMessageTest() { LoggingEvent event = mock(LoggingEvent.class); setMessage(" alertType:: 14 // dataCenterId:: 1 // podId:: 1 // " + "clusterId:: null // message:: Management" + " ::network CIDR is not configured originally. Set it default to 10.102.192.0/22", event); SnmpTrapInfo info = _snmpEnhancedPatternLayout.parseEvent(event); commonAssertions(info, "Management ::network CIDR is not configured originally. Set it default to 10.102.192" + ".0/22"); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private LoggingEvent event; // === Add to @BeforeEach method === @BeforeEach public void setUp() { event = mock(LoggingEvent.class); } // === Replace local variable in test with === event;

Mock Clone Instance #cloudstack_MCI_235

Reusable Method

public class MockAutoScaleVmProfile { public static AutoScaleVmProfile createMockAutoScaleVmProfile() { AutoScaleVmProfile autoScaleVmProfile = Mockito.mock(AutoScaleVmProfile.class); when(autoScaleVmProfile.getId()).thenReturn(1L); when(autoScaleVmProfile.getUuid()).thenReturn("1111-2222-3333-4444"); return autoScaleVmProfile; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_235_1

Test Case Name: testCreateAutoScaleVmProfileSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\CreateAutoScaleVmProfileCmdTest.java)

Mock Object Variable Name: autoScaleVmProfile

Suggested Diff
--- a/TestClass.java +++ b/TestClass.java @@ ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "accountName", accountName); - autoScaleVmProfile = Mockito.mock(AutoScaleVmProfile.class); response = new AutoScaleVmProfileResponse(); response.setUserData(userData); response.setExpungeVmGracePeriod(expungeVmGracePeriod); } @Test public void testCreateAutoScaleVmProfileSuccess() { - when(autoScaleVmProfile.getId()).thenReturn(1L); - when(autoScaleVmProfile.getUuid()).thenReturn("1111-2222-3333-4444"); + autoScaleVmProfile = MockAutoScaleVmProfile.createMockAutoScaleVmProfile(); when(autoScaleService.createAutoScaleVmProfile(createAutoScaleVmProfileCmd)).thenReturn(autoScaleVmProfile); try { createAutoScaleVmProfileCmd.create(); } catch (ResourceAllocationException ex) { Assert.fail("Got exception: " + ex.getMessage()); } Assert.assertEquals(1L, (long) createAutoScaleVmProfileCmd.getEntityId()); when(entityMgr.findById(AutoScaleVmProfile.class, 1L)).thenReturn(autoScaleVmProfile); when(responseGenerator.createAutoScaleVmProfileResponse(autoScaleVmProfile)).thenReturn(response); createAutoScaleVmProfileCmd.execute(); AutoScaleVmProfileResponse autoScaleVmProfileResponse = (AutoScaleVmProfileResponse) createAutoScaleVmProfileCmd.getResponseObject(); Assert.assertEquals(createAutoScaleVmProfileCmd.getCommandName(), autoScaleVmProfileResponse.getResponseName()); Assert.assertEquals(userData, ReflectionTestUtils.getField(autoScaleVmProfileResponse, "userData")); Assert.assertEquals(expungeVmGracePeriod, (int) ReflectionTestUtils.getField(autoScaleVmProfileResponse, "expungeVmGracePeriod")); } @@
Original Test Code (click to expand)
@Test public void testCreateAutoScaleVmProfileSuccess() { when(autoScaleVmProfile.getId()).thenReturn(1L); when(autoScaleVmProfile.getUuid()).thenReturn("1111-2222-3333-4444"); when(autoScaleService.createAutoScaleVmProfile(createAutoScaleVmProfileCmd)).thenReturn(autoScaleVmProfile); try { createAutoScaleVmProfileCmd.create(); } catch (ResourceAllocationException ex) { Assert.fail("Got exception: " + ex.getMessage()); } Assert.assertEquals(1L, (long) createAutoScaleVmProfileCmd.getEntityId()); when(entityMgr.findById(AutoScaleVmProfile.class, 1L)).thenReturn(autoScaleVmProfile); when(responseGenerator.createAutoScaleVmProfileResponse(autoScaleVmProfile)).thenReturn(response); createAutoScaleVmProfileCmd.execute(); AutoScaleVmProfileResponse autoScaleVmProfileResponse = (AutoScaleVmProfileResponse) createAutoScaleVmProfileCmd.getResponseObject(); Assert.assertEquals(createAutoScaleVmProfileCmd.getCommandName(), autoScaleVmProfileResponse.getResponseName()); Assert.assertEquals(userData, ReflectionTestUtils.getField(autoScaleVmProfileResponse, "userData")); Assert.assertEquals(expungeVmGracePeriod, (int) ReflectionTestUtils.getField(autoScaleVmProfileResponse, "expungeVmGracePeriod")); } @Before public void setUp() { otherDeployParams.put("0", new HashMap<>(Map.ofEntries(Map.entry("name", "rootdisksize"), Map.entry("value", "10")))); otherDeployParams.put("1", new HashMap<>(Map.ofEntries(Map.entry("name", "diskofferingid"), Map.entry("value", "2222-3333-4444")))); otherDeployParams.put("2", new HashMap<>(Map.ofEntries(Map.entry("name", "size"), Map.entry("value", "20")))); autoScaleService = Mockito.spy(AutoScaleService.class); entityMgr = Mockito.spy(EntityManager.class); responseGenerator = Mockito.spy(ResponseGenerator.class); createAutoScaleVmProfileCmd = new CreateAutoScaleVmProfileCmd(); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "_autoScaleService", autoScaleService); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "_entityMgr", entityMgr); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "_responseGenerator", responseGenerator); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "zoneId", zoneId); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "serviceOfferingId", serviceOfferingId); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "templateId", templateId); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "userData", userData); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "expungeVmGracePeriod", expungeVmGracePeriod); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "autoscaleUserId", autoscaleUserId); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "otherDeployParams", otherDeployParams); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "counterParamList", counterParamList); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "domainId", domainId); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "projectId", projectId); ReflectionTestUtils.setField(createAutoScaleVmProfileCmd, "accountName", accountName); autoScaleVmProfile = Mockito.mock(AutoScaleVmProfile.class); response = new AutoScaleVmProfileResponse(); response.setUserData(userData); response.setExpungeVmGracePeriod(expungeVmGracePeriod); }
Reusable Method for MCI (click to expand)
public class MockAutoScaleVmProfile { public static AutoScaleVmProfile createMockAutoScaleVmProfile() { AutoScaleVmProfile autoScaleVmProfile = Mockito.mock(AutoScaleVmProfile.class); when(autoScaleVmProfile.getId()).thenReturn(1L); when(autoScaleVmProfile.getUuid()).thenReturn("1111-2222-3333-4444"); return autoScaleVmProfile; } }

Test Case ID #cloudstack_Test_235_2

Test Case Name: testUpdateAutoScaleVmProfileSuccess(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\test\UpdateAutoScaleVmProfileCmdTest.java)

Mock Object Variable Name: autoScaleVmProfile

Suggested Diff
@@ ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "counterParamList", counterParamList); - autoScaleVmProfile = Mockito.mock(AutoScaleVmProfile.class); response = new AutoScaleVmProfileResponse(); response.setUserData(userData); response.setExpungeVmGracePeriod(expungeVmGracePeriod); @@ @Test public void testUpdateAutoScaleVmProfileSuccess() { - when(autoScaleVmProfile.getId()).thenReturn(1L); - when(autoScaleVmProfile.getUuid()).thenReturn("1111-2222-3333-4444"); + autoScaleVmProfile = MockAutoScaleVmProfile.createMockAutoScaleVmProfile(); when(autoScaleService.updateAutoScaleVmProfile(updateAutoScaleVmProfileCmd)).thenReturn(autoScaleVmProfile); when(entityMgr.findById(AutoScaleVmProfile.class, 1L)).thenReturn(autoScaleVmProfile); when(responseGenerator.createAutoScaleVmProfileResponse(autoScaleVmProfile)).thenReturn(response); updateAutoScaleVmProfileCmd.execute(); AutoScaleVmProfileResponse autoScaleVmProfileResponse = (AutoScaleVmProfileResponse) updateAutoScaleVmProfileCmd.getResponseObject(); Assert.assertEquals(updateAutoScaleVmProfileCmd.getCommandName(), autoScaleVmProfileResponse.getResponseName()); Assert.assertEquals(userData, ReflectionTestUtils.getField(autoScaleVmProfileResponse, "userData")); Assert.assertEquals(expungeVmGracePeriod, (int) ReflectionTestUtils.getField(autoScaleVmProfileResponse, "expungeVmGracePeriod")); } @@
Original Test Code (click to expand)
@Before public void setUp() { otherDeployParams.put("rootdiskdize", "10"); otherDeployParams.put("diskofferingid", "2222-3333-4444"); otherDeployParams.put("size", "20"); autoScaleService = Mockito.spy(AutoScaleService.class); entityMgr = Mockito.spy(EntityManager.class); responseGenerator = Mockito.spy(ResponseGenerator.class); updateAutoScaleVmProfileCmd = new UpdateAutoScaleVmProfileCmd(); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "_autoScaleService", autoScaleService); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "_entityMgr", entityMgr); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "_responseGenerator", responseGenerator); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "id", profileId); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "serviceOfferingId", serviceOfferingId); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "templateId", templateId); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "userData", userData); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "expungeVmGracePeriod", expungeVmGracePeriod); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "autoscaleUserId", autoscaleUserId); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "otherDeployParams", otherDeployParams); ReflectionTestUtils.setField(updateAutoScaleVmProfileCmd, "counterParamList", counterParamList); autoScaleVmProfile = Mockito.mock(AutoScaleVmProfile.class); response = new AutoScaleVmProfileResponse(); response.setUserData(userData); response.setExpungeVmGracePeriod(expungeVmGracePeriod); } @Test public void testUpdateAutoScaleVmProfileSuccess() { when(autoScaleVmProfile.getId()).thenReturn(1L); when(autoScaleVmProfile.getUuid()).thenReturn("1111-2222-3333-4444"); when(autoScaleService.updateAutoScaleVmProfile(updateAutoScaleVmProfileCmd)).thenReturn(autoScaleVmProfile); when(entityMgr.findById(AutoScaleVmProfile.class, 1L)).thenReturn(autoScaleVmProfile); when(responseGenerator.createAutoScaleVmProfileResponse(autoScaleVmProfile)).thenReturn(response); updateAutoScaleVmProfileCmd.execute(); AutoScaleVmProfileResponse autoScaleVmProfileResponse = (AutoScaleVmProfileResponse) updateAutoScaleVmProfileCmd.getResponseObject(); Assert.assertEquals(updateAutoScaleVmProfileCmd.getCommandName(), autoScaleVmProfileResponse.getResponseName()); Assert.assertEquals(userData, ReflectionTestUtils.getField(autoScaleVmProfileResponse, "userData")); Assert.assertEquals(expungeVmGracePeriod, (int) ReflectionTestUtils.getField(autoScaleVmProfileResponse, "expungeVmGracePeriod")); }
Reusable Method for MCI (click to expand)
public class MockAutoScaleVmProfile { public static AutoScaleVmProfile createMockAutoScaleVmProfile() { AutoScaleVmProfile autoScaleVmProfile = Mockito.mock(AutoScaleVmProfile.class); when(autoScaleVmProfile.getId()).thenReturn(1L); when(autoScaleVmProfile.getUuid()).thenReturn("1111-2222-3333-4444"); return autoScaleVmProfile; } }

Mock Clone Instance #cloudstack_MCI_236

Reusable Method

private static DiskTO createMockDiskTO(Volume.Type type) { DiskTO diskTO = Mockito.mock(DiskTO.class); when(diskTO.getType()).thenReturn(type); return diskTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_236_1

Test Case Name: testPrepareForMigrationCommand(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: diskTO

Suggested Diff
--- original +++ refactored @@ final NicTO nicTO = Mockito.mock(NicTO.class); - final DiskTO diskTO = Mockito.mock(DiskTO.class); + final DiskTO diskTO = createMockDiskTO(Volume.Type.ISO); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); - when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); @@
Original Test Code (click to expand)
@Test public void testPrepareForMigrationCommand() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static DiskTO createMockDiskTO(Volume.Type type) { DiskTO diskTO = Mockito.mock(DiskTO.class); when(diskTO.getType()).thenReturn(type); return diskTO; }

Test Case ID #cloudstack_Test_236_2

Test Case Name: testPrepareForMigrationCommandMigration(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: diskTO

Suggested Diff
--- original +++ refactored @@ final NicTO nicTO = Mockito.mock(NicTO.class); - final DiskTO diskTO = Mockito.mock(DiskTO.class); + final DiskTO diskTO = createMockDiskTO(Volume.Type.ISO); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); - when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); when(storagePoolManager.connectPhysicalDisksViaVmSpec(vm)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); @@
Original Test Code (click to expand)
@Test public void testPrepareForMigrationCommandMigration() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO diskTO = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { diskTO }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(diskTO.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); when(storagePoolManager.connectPhysicalDisksViaVmSpec(vm)).thenReturn(true); final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertTrue(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(diskTO, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static DiskTO createMockDiskTO(Volume.Type type) { DiskTO diskTO = Mockito.mock(DiskTO.class); when(diskTO.getType()).thenReturn(type); return diskTO; }

Test Case ID #cloudstack_Test_236_3

Test Case Name: testPrepareForMigrationCommandURISyntaxException(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\kvm\src\test\java\com\cloud\hypervisor\kvm\resource\LibvirtComputingResourceTest.java)

Mock Object Variable Name: volume

Suggested Diff
--- original +++ refactored @@ final NicTO nicTO = Mockito.mock(NicTO.class); - final DiskTO volume = Mockito.mock(DiskTO.class); + final DiskTO volume = createMockDiskTO(Volume.Type.ISO); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { volume }); when(nicTO.getType()).thenReturn(TrafficType.Guest); - when(volume.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenThrow(URISyntaxException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(volume, times(1)).getType(); @@
Original Test Code (click to expand)
@SuppressWarnings("unchecked") @Test public void testPrepareForMigrationCommandURISyntaxException() { final Connect conn = Mockito.mock(Connect.class); final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class); final VirtualMachineTO vm = Mockito.mock(VirtualMachineTO.class); final KVMStoragePoolManager storagePoolManager = Mockito.mock(KVMStoragePoolManager.class); final NicTO nicTO = Mockito.mock(NicTO.class); final DiskTO volume = Mockito.mock(DiskTO.class); final VifDriver vifDriver = Mockito.mock(VifDriver.class); final PrepareForMigrationCommand command = new PrepareForMigrationCommand(vm); when(libvirtComputingResourceMock.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper); try { when(libvirtUtilitiesHelper.getConnectionByVmName(vm.getName())).thenReturn(conn); } catch (final LibvirtException e) { fail(e.getMessage()); } when(vm.getNics()).thenReturn(new NicTO[] { nicTO }); when(vm.getDisks()).thenReturn(new DiskTO[] { volume }); when(nicTO.getType()).thenReturn(TrafficType.Guest); when(volume.getType()).thenReturn(Volume.Type.ISO); when(libvirtComputingResourceMock.getVifDriver(nicTO.getType(), nicTO.getName())).thenReturn(vifDriver); when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolManager); try { when(libvirtComputingResourceMock.getVolumePath(conn, volume)).thenThrow(URISyntaxException.class); } catch (final LibvirtException e) { fail(e.getMessage()); } catch (final URISyntaxException e) { fail(e.getMessage()); } final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance(); assertNotNull(wrapper); final Answer answer = wrapper.execute(command, libvirtComputingResourceMock); assertFalse(answer.getResult()); verify(libvirtComputingResourceMock, times(1)).getLibvirtUtilitiesHelper(); try { verify(libvirtUtilitiesHelper, times(1)).getConnectionByVmName(vm.getName()); } catch (final LibvirtException e) { fail(e.getMessage()); } verify(libvirtComputingResourceMock, times(1)).getStoragePoolMgr(); verify(vm, times(1)).getNics(); verify(vm, times(1)).getDisks(); verify(volume, times(1)).getType(); }
Reusable Method for MCI (click to expand)
private static DiskTO createMockDiskTO(Volume.Type type) { DiskTO diskTO = Mockito.mock(DiskTO.class); when(diskTO.getType()).thenReturn(type); return diskTO; }

Mock Clone Instance #cloudstack_MCI_237

Reusable Method

public class MockLdapManager { public static LdapManager createMockLdapManager(String username, String type, String ldapDomain) { LdapManager ldapManager = Mockito.mock(LdapManager.class); when(ldapManager.getUser(username, type, ldapDomain, 1L)) .thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); return ldapManager; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_237_1

Test Case Name: execute(File: C:\Java_projects\Apache\cloudstack\plugins\user-authenticators\ldap\src\test\java\org\apache\cloudstack\api\command\LinkAccountToLdapCmdTest.java)

Mock Object Variable Name: ldapManager

Suggested Diff
@@ LinkAccountToLdapResponse response = new LinkAccountToLdapResponse(String.valueOf(domainId), type, ldapDomain, accountType.ordinal(), username, accountName); - when(ldapManager.linkAccountToLdap(linkAccountToLdapCmd)).thenReturn(response); - when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); + ldapManager = MockLdapManager.createMockLdapManager(username, type, ldapDomain); + when(ldapManager.linkAccountToLdap(linkAccountToLdapCmd)).thenReturn(response); when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); @@
Original Test Code (click to expand)
@Test public void execute() throws Exception { // test with valid params and with admin who doesn't exist in cloudstack long domainId = 1; String type = "GROUP"; String ldapDomain = "CN=test,DC=ccp,DC=Citrix,DC=com"; Account.Type accountType = Account.Type.DOMAIN_ADMIN; String username = "admin"; long accountId = 24; String accountName = "test"; setHiddenField(linkAccountToLdapCmd, "ldapDomain", ldapDomain); setHiddenField(linkAccountToLdapCmd, "admin", username); setHiddenField(linkAccountToLdapCmd, "type", type); setHiddenField(linkAccountToLdapCmd, "domainId", domainId); setHiddenField(linkAccountToLdapCmd, "accountType", accountType.ordinal()); setHiddenField(linkAccountToLdapCmd, "accountName", accountName); LinkAccountToLdapResponse response = new LinkAccountToLdapResponse(String.valueOf(domainId), type, ldapDomain, accountType.ordinal(), username, accountName); when(ldapManager.linkAccountToLdap(linkAccountToLdapCmd)).thenReturn(response); when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); when(accountService.createUserAccount(eq(username), eq(""), eq("Admin"), eq("Admin"), eq("admin@ccp.citrix.com"), isNull(String.class), eq(username), eq(Account.Type.DOMAIN_ADMIN), eq(RoleType.DomainAdmin.getId()), eq(domainId), isNull(String.class), (java.util.Map<String, String>) isNull(), anyString(), anyString(), eq(User.Source.LDAP))).thenReturn(userAccount); linkAccountToLdapCmd.execute(); LinkAccountToLdapResponse result = (LinkAccountToLdapResponse) linkAccountToLdapCmd.getResponseObject(); assertEquals("objectName", BaseCmd.getCommandNameByClass(LinkAccountToLdapCmd.class), result.getObjectName()); assertEquals("commandName", linkAccountToLdapCmd.getCommandName(), result.getResponseName()); assertEquals("domainId", String.valueOf(domainId), result.getDomainId()); assertEquals("type", type, result.getType()); assertEquals("name", ldapDomain, result.getLdapDomain()); assertEquals("accountId", String.valueOf(accountId), result.getAdminId()); } @Before public void setUp() throws NoSuchFieldException, IllegalAccessException { linkAccountToLdapCmd = new LinkAccountToLdapCmd(); setHiddenField(linkAccountToLdapCmd, "_ldapManager", ldapManager); setHiddenField(linkAccountToLdapCmd, "_accountService", accountService); }
Reusable Method for MCI (click to expand)
public class MockLdapManager { public static LdapManager createMockLdapManager(String username, String type, String ldapDomain) { LdapManager ldapManager = Mockito.mock(LdapManager.class); when(ldapManager.getUser(username, type, ldapDomain, 1L)) .thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); return ldapManager; } }

Test Case ID #cloudstack_Test_237_2

Test Case Name: execute(File: C:\Java_projects\Apache\cloudstack\plugins\user-authenticators\ldap\src\test\java\org\apache\cloudstack\api\command\LinkDomainToLdapCmdTest.java)

Mock Object Variable Name: ldapManager

Suggested Diff
@@ setHiddenField(linkDomainToLdapCmd, "type", type); setHiddenField(linkDomainToLdapCmd, "domainId", domainId); setHiddenField(linkDomainToLdapCmd, "accountType", accountType.ordinal()); LinkDomainToLdapResponse response = new LinkDomainToLdapResponse(domainId.toString(), type, ldapDomain, accountType.ordinal()); - when(ldapManager.linkDomainToLdap(linkDomainToLdapCmd)).thenReturn(response); - when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); + ldapManager = MockLdapManager.createMockLdapManager(username, type, ldapDomain); + when(ldapManager.linkDomainToLdap(linkDomainToLdapCmd)).thenReturn(response); when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); when(accountService.createUserAccount(eq(username), eq(""), eq("Admin"), eq("Admin"), eq("admin@ccp.citrix.com"), isNull(String.class), eq(username), eq(Account.Type.DOMAIN_ADMIN), eq(RoleType.DomainAdmin.getId()), eq(domainId), isNull(String.class), (java.util.Map<String, String>) isNull(), anyString(), anyString(), eq(User.Source.LDAP))).thenReturn(userAccount); linkDomainToLdapCmd.execute(); @@
Original Test Code (click to expand)
@Before public void setUp() throws NoSuchFieldException, IllegalAccessException { linkDomainToLdapCmd = new LinkDomainToLdapCmd(); setHiddenField(linkDomainToLdapCmd, "_ldapManager", ldapManager); setHiddenField(linkDomainToLdapCmd, "_accountService", accountService); } @Test public void execute() throws Exception { // test with valid params and with admin who doesn't exist in cloudstack Long domainId = 1L; String type = "GROUP"; String ldapDomain = "CN=test,DC=ccp,DC=Citrix,DC=com"; Account.Type accountType = Account.Type.DOMAIN_ADMIN; String username = "admin"; long accountId = 24; setHiddenField(linkDomainToLdapCmd, "ldapDomain", ldapDomain); setHiddenField(linkDomainToLdapCmd, "admin", username); setHiddenField(linkDomainToLdapCmd, "type", type); setHiddenField(linkDomainToLdapCmd, "domainId", domainId); setHiddenField(linkDomainToLdapCmd, "accountType", accountType.ordinal()); LinkDomainToLdapResponse response = new LinkDomainToLdapResponse(domainId.toString(), type, ldapDomain, accountType.ordinal()); when(ldapManager.linkDomainToLdap(linkDomainToLdapCmd)).thenReturn(response); when(ldapManager.getUser(username, type, ldapDomain, 1L)).thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); when(accountService.getActiveAccountByName(username, domainId)).thenReturn(null); UserAccountVO userAccount = new UserAccountVO(); userAccount.setAccountId(24); when(accountService.createUserAccount(eq(username), eq(""), eq("Admin"), eq("Admin"), eq("admin@ccp.citrix.com"), isNull(String.class), eq(username), eq(Account.Type.DOMAIN_ADMIN), eq(RoleType.DomainAdmin.getId()), eq(domainId), isNull(String.class), (java.util.Map<String, String>) isNull(), anyString(), anyString(), eq(User.Source.LDAP))).thenReturn(userAccount); linkDomainToLdapCmd.execute(); LinkDomainToLdapResponse result = (LinkDomainToLdapResponse) linkDomainToLdapCmd.getResponseObject(); assertEquals("objectName", "LinkDomainToLdap", result.getObjectName()); assertEquals("commandName", linkDomainToLdapCmd.getCommandName(), result.getResponseName()); assertEquals("domainId", domainId.toString(), result.getDomainId()); assertEquals("type", type, result.getType()); assertEquals("name", ldapDomain, result.getLdapDomain()); assertEquals("accountId", String.valueOf(accountId), result.getAdminId()); }
Reusable Method for MCI (click to expand)
public class MockLdapManager { public static LdapManager createMockLdapManager(String username, String type, String ldapDomain) { LdapManager ldapManager = Mockito.mock(LdapManager.class); when(ldapManager.getUser(username, type, ldapDomain, 1L)) .thenReturn(new LdapUser(username, "admin@ccp.citrix.com", "Admin", "Admin", ldapDomain, "ccp", false, null)); return ldapManager; } }

Mock Clone Instance #cloudstack_MCI_238

Reusable Method

private static LinkUserDataToTemplateCmd createMockLinkUserDataToTemplateCmd(long templateId, UserData.UserDataOverridePolicy userdataPolicy) { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(templateId); when(cmd.getUserdataPolicy()).thenReturn(userdataPolicy); return cmd; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_238_1

Test Case Name: testLinkUserDataToTemplate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ public void testLinkUserDataToTemplate() { - LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); - when(cmd.getTemplateId()).thenReturn(1L); - when(cmd.getIsoId()).thenReturn(null); - when(cmd.getUserdataId()).thenReturn(2L); - when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + LinkUserDataToTemplateCmd cmd = createMockLinkUserDataToTemplateCmd(1L, UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + when(cmd.getIsoId()).thenReturn(null); + when(cmd.getUserdataId()).thenReturn(2L); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(_tmpltDao.findById(anyLong())).thenReturn(template); VirtualMachineTemplate resultTemplate = templateManager.linkUserDataToTemplate(cmd); Assert.assertEquals(template, resultTemplate); }
Original Test Code (click to expand)
@Test public void testLinkUserDataToTemplate() { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(1L); when(cmd.getIsoId()).thenReturn(null); when(cmd.getUserdataId()).thenReturn(2L); when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(_tmpltDao.findById(anyLong())).thenReturn(template); VirtualMachineTemplate resultTemplate = templateManager.linkUserDataToTemplate(cmd); Assert.assertEquals(template, resultTemplate); }
Reusable Method for MCI (click to expand)
private static LinkUserDataToTemplateCmd createMockLinkUserDataToTemplateCmd(long templateId, UserData.UserDataOverridePolicy userdataPolicy) { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(templateId); when(cmd.getUserdataPolicy()).thenReturn(userdataPolicy); return cmd; }

Test Case ID #cloudstack_Test_238_2

Test Case Name: testLinkUserDataToTemplateByProvidingBothISOAndTemplateId(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ public void testLinkUserDataToTemplateByProvidingBothISOAndTemplateId() { - LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); - when(cmd.getTemplateId()).thenReturn(1L); + LinkUserDataToTemplateCmd cmd = createMockLinkUserDataToTemplateCmd(1L, UserData.UserDataOverridePolicy.ALLOWOVERRIDE); when(cmd.getIsoId()).thenReturn(1L); when(cmd.getUserdataId()).thenReturn(2L); - when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(_tmpltDao.findById(1L)).thenReturn(template); templateManager.linkUserDataToTemplate(cmd); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testLinkUserDataToTemplateByProvidingBothISOAndTemplateId() { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(1L); when(cmd.getIsoId()).thenReturn(1L); when(cmd.getUserdataId()).thenReturn(2L); when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(_tmpltDao.findById(1L)).thenReturn(template); templateManager.linkUserDataToTemplate(cmd); }
Reusable Method for MCI (click to expand)
private static LinkUserDataToTemplateCmd createMockLinkUserDataToTemplateCmd(long templateId, UserData.UserDataOverridePolicy userdataPolicy) { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(templateId); when(cmd.getUserdataPolicy()).thenReturn(userdataPolicy); return cmd; }

Test Case ID #cloudstack_Test_238_3

Test Case Name: testLinkUserDataToTemplateWhenNoTemplate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ public void testLinkUserDataToTemplateWhenNoTemplate() { - LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); - when(cmd.getTemplateId()).thenReturn(1L); - when(cmd.getIsoId()).thenReturn(null); - when(cmd.getUserdataId()).thenReturn(2L); - when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + LinkUserDataToTemplateCmd cmd = createMockLinkUserDataToTemplateCmd(1L, UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + when(cmd.getIsoId()).thenReturn(null); + when(cmd.getUserdataId()).thenReturn(2L); when(_tmpltDao.findById(anyLong())).thenReturn(null); templateManager.linkUserDataToTemplate(cmd); }
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testLinkUserDataToTemplateWhenNoTemplate() { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(1L); when(cmd.getIsoId()).thenReturn(null); when(cmd.getUserdataId()).thenReturn(2L); when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); when(_tmpltDao.findById(anyLong())).thenReturn(null); templateManager.linkUserDataToTemplate(cmd); }
Reusable Method for MCI (click to expand)
private static LinkUserDataToTemplateCmd createMockLinkUserDataToTemplateCmd(long templateId, UserData.UserDataOverridePolicy userdataPolicy) { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(templateId); when(cmd.getUserdataPolicy()).thenReturn(userdataPolicy); return cmd; }

Test Case ID #cloudstack_Test_238_4

Test Case Name: testUnLinkUserDataToTemplate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\template\TemplateManagerImplTest.java)

Mock Object Variable Name: cmd

Suggested Diff
--- original +++ refactored @@ public void testUnLinkUserDataToTemplate() { - LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); - when(cmd.getTemplateId()).thenReturn(1L); - when(cmd.getIsoId()).thenReturn(null); - when(cmd.getUserdataId()).thenReturn(null); - when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + LinkUserDataToTemplateCmd cmd = createMockLinkUserDataToTemplateCmd(1L, UserData.UserDataOverridePolicy.ALLOWOVERRIDE); + when(cmd.getIsoId()).thenReturn(null); + when(cmd.getUserdataId()).thenReturn(null); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(template.getId()).thenReturn(1L); when(_tmpltDao.findById(1L)).thenReturn(template); VirtualMachineTemplate resultTemplate = templateManager.linkUserDataToTemplate(cmd); Assert.assertEquals(template, resultTemplate); }
Original Test Code (click to expand)
@Test public void testUnLinkUserDataToTemplate() { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(1L); when(cmd.getIsoId()).thenReturn(null); when(cmd.getUserdataId()).thenReturn(null); when(cmd.getUserdataPolicy()).thenReturn(UserData.UserDataOverridePolicy.ALLOWOVERRIDE); VMTemplateVO template = Mockito.mock(VMTemplateVO.class); when(template.getId()).thenReturn(1L); when(_tmpltDao.findById(1L)).thenReturn(template); VirtualMachineTemplate resultTemplate = templateManager.linkUserDataToTemplate(cmd); Assert.assertEquals(template, resultTemplate); }
Reusable Method for MCI (click to expand)
private static LinkUserDataToTemplateCmd createMockLinkUserDataToTemplateCmd(long templateId, UserData.UserDataOverridePolicy userdataPolicy) { LinkUserDataToTemplateCmd cmd = Mockito.mock(LinkUserDataToTemplateCmd.class); when(cmd.getTemplateId()).thenReturn(templateId); when(cmd.getUserdataPolicy()).thenReturn(userdataPolicy); return cmd; }

Mock Clone Instance #cloudstack_MCI_239

Reusable Method

private static PublicIpAddress createMockPublicIpAddress(Ip address, IpAddress.State state, String netmask) { PublicIpAddress mockPublicIpAddress = mock(PublicIpAddress.class); when(mockPublicIpAddress.getAddress()).thenReturn(address); when(mockPublicIpAddress.getNetmask()).thenReturn(netmask); when(mockPublicIpAddress.getState()).thenReturn(state); return mockPublicIpAddress; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_239_1

Test Case Name: applyIpTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: pipReleased

Suggested Diff
--- original +++ refactored @@ final PublicIpAddress pipAllocated = mock(PublicIpAddress.class); final Ip ipReleased = new Ip("42.10.10.10"); final Ip ipAllocated = new Ip("10.10.10.10"); when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated); when(pipAllocated.getAddress()).thenReturn(ipAllocated); when(pipAllocated.getNetmask()).thenReturn("255.255.255.0"); - final PublicIpAddress pipReleased = mock(PublicIpAddress.class); - when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing); - when(pipReleased.getAddress()).thenReturn(ipReleased); - when(pipReleased.getNetmask()).thenReturn("255.255.255.0"); + final PublicIpAddress pipReleased = createMockPublicIpAddress(ipReleased, IpAddress.State.Releasing, "255.255.255.0"); ipAddresses.add(pipAllocated); ipAddresses.add(pipReleased); final Set<Service> services = new HashSet<Service>(); @@
Original Test Code (click to expand)
@Test public void applyIpTest() throws ResourceUnavailableException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final List<PublicIpAddress> ipAddresses = new ArrayList<PublicIpAddress>(); final PublicIpAddress pipReleased = mock(PublicIpAddress.class); final PublicIpAddress pipAllocated = mock(PublicIpAddress.class); final Ip ipReleased = new Ip("42.10.10.10"); final Ip ipAllocated = new Ip("10.10.10.10"); when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated); when(pipAllocated.getAddress()).thenReturn(ipAllocated); when(pipAllocated.getNetmask()).thenReturn("255.255.255.0"); when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing); when(pipReleased.getAddress()).thenReturn(ipReleased); when(pipReleased.getNetmask()).thenReturn("255.255.255.0"); ipAddresses.add(pipAllocated); ipAddresses.add(pipReleased); final Set<Service> services = new HashSet<Service>(); services.add(Service.SourceNat); services.add(Service.StaticNat); services.add(Service.PortForwarding); final List<NiciraNvpDeviceVO> deviceList = new ArrayList<NiciraNvpDeviceVO>(); final NiciraNvpDeviceVO nndVO = mock(NiciraNvpDeviceVO.class); final NiciraNvpRouterMappingVO nnrmVO = mock(NiciraNvpRouterMappingVO.class); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(nnrmVO); when(nnrmVO.getLogicalRouterUuid()).thenReturn("abcde"); when(nndVO.getHostId()).thenReturn(NETWORK_ID); final HostVO hvo = mock(HostVO.class); when(hvo.getId()).thenReturn(NETWORK_ID); when(hvo.getDetail("l3gatewayserviceuuid")).thenReturn("abcde"); when(hostDao.findById(NETWORK_ID)).thenReturn(hvo); deviceList.add(nndVO); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(deviceList); final ConfigurePublicIpsOnLogicalRouterAnswer answer = mock(ConfigurePublicIpsOnLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NETWORK_ID), any(ConfigurePublicIpsOnLogicalRouterCommand.class))).thenReturn(answer); assertTrue(element.applyIps(network, ipAddresses, services)); verify(agentManager, atLeast(1)).easySend(eq(NETWORK_ID), argThat(new ArgumentMatcher<ConfigurePublicIpsOnLogicalRouterCommand>() { @Override public boolean matches(final ConfigurePublicIpsOnLogicalRouterCommand command) { return command.getPublicCidrs().size() == 1; } })); }
Reusable Method for MCI (click to expand)
private static PublicIpAddress createMockPublicIpAddress(Ip address, IpAddress.State state, String netmask) { PublicIpAddress mockPublicIpAddress = mock(PublicIpAddress.class); when(mockPublicIpAddress.getAddress()).thenReturn(address); when(mockPublicIpAddress.getNetmask()).thenReturn(netmask); when(mockPublicIpAddress.getState()).thenReturn(state); return mockPublicIpAddress; }

Test Case ID #cloudstack_Test_239_2

Test Case Name: applyIpTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: pipAllocated

Suggested Diff
--- original +++ refactored @@ final PublicIpAddress pipReleased = mock(PublicIpAddress.class); - final PublicIpAddress pipAllocated = mock(PublicIpAddress.class); final Ip ipReleased = new Ip("42.10.10.10"); final Ip ipAllocated = new Ip("10.10.10.10"); + final PublicIpAddress pipAllocated = createMockPublicIpAddress(ipAllocated, IpAddress.State.Allocated, "255.255.255.0"); - when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated); - when(pipAllocated.getAddress()).thenReturn(ipAllocated); - when(pipAllocated.getNetmask()).thenReturn("255.255.255.0"); when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing); when(pipReleased.getAddress()).thenReturn(ipReleased); when(pipReleased.getNetmask()).thenReturn("255.255.255.0"); @@
Original Test Code (click to expand)
@Test public void applyIpTest() throws ResourceUnavailableException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final List<PublicIpAddress> ipAddresses = new ArrayList<PublicIpAddress>(); final PublicIpAddress pipReleased = mock(PublicIpAddress.class); final PublicIpAddress pipAllocated = mock(PublicIpAddress.class); final Ip ipReleased = new Ip("42.10.10.10"); final Ip ipAllocated = new Ip("10.10.10.10"); when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated); when(pipAllocated.getAddress()).thenReturn(ipAllocated); when(pipAllocated.getNetmask()).thenReturn("255.255.255.0"); when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing); when(pipReleased.getAddress()).thenReturn(ipReleased); when(pipReleased.getNetmask()).thenReturn("255.255.255.0"); ipAddresses.add(pipAllocated); ipAddresses.add(pipReleased); final Set<Service> services = new HashSet<Service>(); services.add(Service.SourceNat); services.add(Service.StaticNat); services.add(Service.PortForwarding); final List<NiciraNvpDeviceVO> deviceList = new ArrayList<NiciraNvpDeviceVO>(); final NiciraNvpDeviceVO nndVO = mock(NiciraNvpDeviceVO.class); final NiciraNvpRouterMappingVO nnrmVO = mock(NiciraNvpRouterMappingVO.class); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(nnrmVO); when(nnrmVO.getLogicalRouterUuid()).thenReturn("abcde"); when(nndVO.getHostId()).thenReturn(NETWORK_ID); final HostVO hvo = mock(HostVO.class); when(hvo.getId()).thenReturn(NETWORK_ID); when(hvo.getDetail("l3gatewayserviceuuid")).thenReturn("abcde"); when(hostDao.findById(NETWORK_ID)).thenReturn(hvo); deviceList.add(nndVO); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(deviceList); final ConfigurePublicIpsOnLogicalRouterAnswer answer = mock(ConfigurePublicIpsOnLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NETWORK_ID), any(ConfigurePublicIpsOnLogicalRouterCommand.class))).thenReturn(answer); assertTrue(element.applyIps(network, ipAddresses, services)); verify(agentManager, atLeast(1)).easySend(eq(NETWORK_ID), argThat(new ArgumentMatcher<ConfigurePublicIpsOnLogicalRouterCommand>() { @Override public boolean matches(final ConfigurePublicIpsOnLogicalRouterCommand command) { return command.getPublicCidrs().size() == 1; } })); }
Reusable Method for MCI (click to expand)
private static PublicIpAddress createMockPublicIpAddress(Ip address, IpAddress.State state, String netmask) { PublicIpAddress mockPublicIpAddress = mock(PublicIpAddress.class); when(mockPublicIpAddress.getAddress()).thenReturn(address); when(mockPublicIpAddress.getNetmask()).thenReturn(netmask); when(mockPublicIpAddress.getState()).thenReturn(state); return mockPublicIpAddress; }

Mock Clone Instance #cloudstack_MCI_240

Reusable Method

public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long id, Networks.TrafficType trafficType, Network.GuestType guestType) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(id); when(offering.getTrafficType()).thenReturn(trafficType); when(offering.getGuestType()).thenReturn(guestType); return offering; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_240_1

Test Case Name: implementTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\cisco-vnmc\src\test\java\com\cloud\network\element\CiscoVnmcElementTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(network.getCidr()).thenReturn("1.1.1.0/24"); - NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(1L); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(1L, TrafficType.Guest, GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); @@
Original Test Code (click to expand)
@Test public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { URI uri = URI.create("vlan://123"); Network network = mock(Network.class); when(network.getId()).thenReturn(1L); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan); when(network.getDataCenterId()).thenReturn(1L); when(network.getGateway()).thenReturn("1.1.1.1"); when(network.getBroadcastUri()).thenReturn(uri); when(network.getCidr()).thenReturn("1.1.1.0/24"); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(1L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeployDestination dest = mock(DeployDestination.class); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("d1"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("a1"); ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); DataCenter dc = mock(DataCenter.class); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(_entityMgr.findById(DataCenter.class, network.getDataCenterId())).thenReturn(dc); List<CiscoVnmcControllerVO> devices = new ArrayList<CiscoVnmcControllerVO>(); devices.add(mock(CiscoVnmcControllerVO.class)); when(_ciscoVnmcDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(devices); CiscoAsa1000vDeviceVO asaVO = mock(CiscoAsa1000vDeviceVO.class); when(asaVO.getInPortProfile()).thenReturn("foo"); when(asaVO.getManagementIp()).thenReturn("1.2.3.4"); List<CiscoAsa1000vDeviceVO> asaList = new ArrayList<CiscoAsa1000vDeviceVO>(); asaList.add(asaVO); when(_ciscoAsa1000vDao.listByPhysicalNetwork(network.getPhysicalNetworkId())).thenReturn(asaList); when(_networkAsa1000vMapDao.findByNetworkId(network.getId())).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkAsa1000vMapDao.findByAsa1000vId(anyLong())).thenReturn(null); when(_networkAsa1000vMapDao.persist(any(NetworkAsa1000vMapVO.class))).thenReturn(mock(NetworkAsa1000vMapVO.class)); when(_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, Provider.CiscoVnmc)).thenReturn(true); ClusterVSMMapVO clusterVsmMap = mock(ClusterVSMMapVO.class); when(_clusterVsmMapDao.findByClusterId(anyLong())).thenReturn(clusterVsmMap); CiscoNexusVSMDeviceVO vsmDevice = mock(CiscoNexusVSMDeviceVO.class); when(vsmDevice.getUserName()).thenReturn("foo"); when(vsmDevice.getPassword()).thenReturn("bar"); when(vsmDevice.getipaddr()).thenReturn("1.2.3.4"); when(_vsmDeviceDao.findById(anyLong())).thenReturn(vsmDevice); HostVO hostVO = mock(HostVO.class); when(hostVO.getId()).thenReturn(1L); when(_hostDao.findById(anyLong())).thenReturn(hostVO); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("1.2.3.4"); PublicIp publicIp = mock(PublicIp.class); when(publicIp.getAddress()).thenReturn(ip); when(publicIp.getState()).thenReturn(IpAddress.State.Releasing); when(publicIp.getAccountId()).thenReturn(1L); when(publicIp.isSourceNat()).thenReturn(true); when(publicIp.getVlanTag()).thenReturn("123"); when(publicIp.getGateway()).thenReturn("1.1.1.1"); when(publicIp.getNetmask()).thenReturn("1.1.1.1"); when(publicIp.getMacAddress()).thenReturn(null); when(publicIp.isOneToOneNat()).thenReturn(true); when(_ipAddrMgr.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(publicIp); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanGateway()).thenReturn("1.1.1.1"); List<VlanVO> vlanVOList = new ArrayList<VlanVO>(); when(_vlanDao.listVlansByPhysicalNetworkId(network.getPhysicalNetworkId())).thenReturn(vlanVOList); Answer answer = mock(Answer.class); when(answer.getResult()).thenReturn(true); when(_agentMgr.easySend(anyLong(), any(CreateLogicalEdgeFirewallCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(ConfigureNexusVsmForAsaCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(SetSourceNatCommand.class))).thenReturn(answer); when(_agentMgr.easySend(anyLong(), any(AssociateAsaWithLogicalEdgeFirewallCommand.class))).thenReturn(answer); assertTrue(_element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long id, Networks.TrafficType trafficType, Network.GuestType guestType) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(id); when(offering.getTrafficType()).thenReturn(trafficType); when(offering.getGuestType()).thenReturn(guestType); return offering; } }

Test Case ID #cloudstack_Test_240_2

Test Case Name: implementIsolatedNetworkTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@
Original Test Code (click to expand)
@Test public void implementIsolatedNetworkTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException, URISyntaxException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Isolated); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //ISOLATED NETWORK when(networkModel.isProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NiciraNvp)).thenReturn(true); PublicIp sourceNatIp = mock(PublicIp.class); Ip ip = mock(Ip.class); when(ip.addr()).thenReturn("10.0.0.0"); when(sourceNatIp.getAddress()).thenReturn(ip); when(sourceNatIp.getVlanNetmask()).thenReturn("255.255.255.0"); when(sourceNatIp.getVlanTag()).thenReturn("111"); when(ipAddressManager.assignSourceNatIpAddressToGuestNetwork(acc, network)).thenReturn(sourceNatIp); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); when(network.getCidr()).thenReturn(NETWORK_CIDR); final CreateLogicalRouterAnswer answer = mock(CreateLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long id, Networks.TrafficType trafficType, Network.GuestType guestType) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(id); when(offering.getTrafficType()).thenReturn(trafficType); when(offering.getGuestType()).thenReturn(guestType); return offering; } }

Test Case ID #cloudstack_Test_240_3

Test Case Name: applyIpTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final List<PublicIpAddress> ipAddresses = new ArrayList<PublicIpAddress>(); @@
Original Test Code (click to expand)
@Test public void applyIpTest() throws ResourceUnavailableException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final List<PublicIpAddress> ipAddresses = new ArrayList<PublicIpAddress>(); final PublicIpAddress pipReleased = mock(PublicIpAddress.class); final PublicIpAddress pipAllocated = mock(PublicIpAddress.class); final Ip ipReleased = new Ip("42.10.10.10"); final Ip ipAllocated = new Ip("10.10.10.10"); when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated); when(pipAllocated.getAddress()).thenReturn(ipAllocated); when(pipAllocated.getNetmask()).thenReturn("255.255.255.0"); when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing); when(pipReleased.getAddress()).thenReturn(ipReleased); when(pipReleased.getNetmask()).thenReturn("255.255.255.0"); ipAddresses.add(pipAllocated); ipAddresses.add(pipReleased); final Set<Service> services = new HashSet<Service>(); services.add(Service.SourceNat); services.add(Service.StaticNat); services.add(Service.PortForwarding); final List<NiciraNvpDeviceVO> deviceList = new ArrayList<NiciraNvpDeviceVO>(); final NiciraNvpDeviceVO nndVO = mock(NiciraNvpDeviceVO.class); final NiciraNvpRouterMappingVO nnrmVO = mock(NiciraNvpRouterMappingVO.class); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(nnrmVO); when(nnrmVO.getLogicalRouterUuid()).thenReturn("abcde"); when(nndVO.getHostId()).thenReturn(NETWORK_ID); final HostVO hvo = mock(HostVO.class); when(hvo.getId()).thenReturn(NETWORK_ID); when(hvo.getDetail("l3gatewayserviceuuid")).thenReturn("abcde"); when(hostDao.findById(NETWORK_ID)).thenReturn(hvo); deviceList.add(nndVO); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(deviceList); final ConfigurePublicIpsOnLogicalRouterAnswer answer = mock(ConfigurePublicIpsOnLogicalRouterAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NETWORK_ID), any(ConfigurePublicIpsOnLogicalRouterCommand.class))).thenReturn(answer); assertTrue(element.applyIps(network, ipAddresses, services)); verify(agentManager, atLeast(1)).easySend(eq(NETWORK_ID), argThat(new ArgumentMatcher<ConfigurePublicIpsOnLogicalRouterCommand>() { @Override public boolean matches(final ConfigurePublicIpsOnLogicalRouterCommand command) { return command.getPublicCidrs().size() == 1; } })); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long id, Networks.TrafficType trafficType, Network.GuestType guestType) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(id); when(offering.getTrafficType()).thenReturn(trafficType); when(offering.getGuestType()).thenReturn(guestType); return offering; } }

Test Case ID #cloudstack_Test_240_4

Test Case Name: implementSharedNetworkUuidVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Shared); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkUuidVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 1: LOGICAL ROUTER'S UUID AS VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 1 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(true); when(network.getCidr()).thenReturn(NETWORK_CIDR); when(network.getGateway()).thenReturn(NETWORK_GATEWAY); NiciraNvpRouterMappingVO mapping = mock(NiciraNvpRouterMappingVO.class); when(mapping.getLogicalRouterUuid()).thenReturn("xxxx-xxxx-xxxx"); when(niciraNvpRouterMappingDao.findByNetworkId(NETWORK_ID)).thenReturn(mapping); final ConfigureSharedNetworkUuidAnswer answer = mock(ConfigureSharedNetworkUuidAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long id, Networks.TrafficType trafficType, Network.GuestType guestType) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(id); when(offering.getTrafficType()).thenReturn(trafficType); when(offering.getGuestType()).thenReturn(guestType); return offering; } }

Test Case ID #cloudstack_Test_240_5

Test Case Name: implementSharedNetworkNumericalVlanIdTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: offering

Suggested Diff
@@ when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Shared); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@
Original Test Code (click to expand)
@Test public void implementSharedNetworkNumericalVlanIdTest() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { // SHARED NETWORKS CASE 2: NUMERICAL VLAN ID final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn("bbbb-bbbb-bbbb"); final ConfigureSharedNetworkVlanIdAnswer answer = mock(ConfigureSharedNetworkVlanIdAnswer.class); when(answer.getResult()).thenReturn(true); when(agentManager.easySend(eq(NICIRA_NVP_HOST_ID), (Command) any())).thenReturn(answer); assertTrue(element.implement(network, offering, dest, context)); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long id, Networks.TrafficType trafficType, Network.GuestType guestType) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(id); when(offering.getTrafficType()).thenReturn(trafficType); when(offering.getGuestType()).thenReturn(guestType); return offering; } }

Test Case ID #cloudstack_Test_240_6

Test Case Name: implementSharedNetworkNumericalVlanIdWithoutL2GatewayService(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\element\NiciraNvpElementTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Shared); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); @@
Original Test Code (click to expand)
@Test(expected = CloudRuntimeException.class) public void implementSharedNetworkNumericalVlanIdWithoutL2GatewayService() throws URISyntaxException, ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { final Network network = mock(Network.class); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getId()).thenReturn(NETWORK_ID); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getGuestType()).thenReturn(GuestType.Shared); when(networkModel.isProviderForNetwork(Provider.NiciraNvp, NETWORK_ID)).thenReturn(true); when(ntwkSrvcDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(niciraNvpDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); when(device.getHostId()).thenReturn(NICIRA_NVP_HOST_ID); HostVO niciraNvpHost = mock(HostVO.class); when(niciraNvpHost.getId()).thenReturn(NICIRA_NVP_HOST_ID); when(hostDao.findById(NICIRA_NVP_HOST_ID)).thenReturn(niciraNvpHost); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); final DeployDestination dest = mock(DeployDestination.class); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext context = mock(ReservationContext.class); when(context.getDomain()).thenReturn(dom); when(context.getAccount()).thenReturn(acc); //SHARED NETWORKS CASE 2 when(niciraNvpRouterMappingDao.existsMappingForNetworkId(NETWORK_ID)).thenReturn(false); VlanVO vlanVO = mock(VlanVO.class); when(vlanVO.getVlanTag()).thenReturn("111"); when(vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Arrays.asList(new VlanVO[] { vlanVO })); when(niciraNvpHost.getDetail("l2gatewayserviceuuid")).thenReturn(null); element.implement(network, offering, dest, context); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long id, Networks.TrafficType trafficType, Network.GuestType guestType) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(id); when(offering.getTrafficType()).thenReturn(trafficType); when(offering.getGuestType()).thenReturn(guestType); return offering; } }

Mock Clone Instance #cloudstack_MCI_241

Reusable Method

private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); Mockito.when(networkOffering.getGuestType()).thenReturn(guestType); return networkOffering; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_241_1

Test Case Name: testGetPhysicalNetworkIdForAssociatedNetIdForNonSharedNet(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\network\CreateNetworkCmdTest.java)

Mock Object Variable Name: networkOffering

Suggested Diff
--- original +++ refactored @@ Long networkOfferingId = 1L; Long associatedNetworkId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); ReflectionTestUtils.setField(cmd, "associatedNetworkId", associatedNetworkId); - NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); + NetworkOffering networkOffering = createMockNetworkOffering(Network.GuestType.Isolated); Network network = Mockito.mock(Network.class); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); Mockito.when(_entityMgr.findById(Network.class, associatedNetworkId)).thenReturn(network); - Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Isolated); try { cmd.getPhysicalNetworkId(); } catch (Exception e) { Assert.assertTrue(e.getMessage().startsWith("Associated network ID can be specified for networks of guest IP type Shared only")); } @@
Original Test Code (click to expand)
public void testGetPhysicalNetworkIdForAssociatedNetIdForNonSharedNet() { Long physicalNetworkId = 1L; Long networkOfferingId = 1L; Long associatedNetworkId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); ReflectionTestUtils.setField(cmd, "associatedNetworkId", associatedNetworkId); NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); Network network = Mockito.mock(Network.class); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); Mockito.when(_entityMgr.findById(Network.class, associatedNetworkId)).thenReturn(network); Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Isolated); try { cmd.getPhysicalNetworkId(); } catch (Exception e) { Assert.assertTrue(e.getMessage().startsWith("Associated network ID can be specified for networks of guest IP type Shared only")); } }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); Mockito.when(networkOffering.getGuestType()).thenReturn(guestType); return networkOffering; }

Test Case ID #cloudstack_Test_241_2

Test Case Name: testGetPhysicalNetworkIdForNonSharedNet(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\network\CreateNetworkCmdTest.java)

Mock Object Variable Name: networkOffering

Suggested Diff
--- original +++ refactored @@ Long networkOfferingId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); - NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); + NetworkOffering networkOffering = createMockNetworkOffering(Network.GuestType.Isolated); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); - Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Isolated); try { cmd.getPhysicalNetworkId(); } catch (Exception e) { Assert.assertTrue(e.getMessage().startsWith("Physical network ID can be specified for networks of guest IP type Shared only")); } @@
Original Test Code (click to expand)
public void testGetPhysicalNetworkIdForNonSharedNet() { Long physicalNetworkId = 1L; Long networkOfferingId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Isolated); try { cmd.getPhysicalNetworkId(); } catch (Exception e) { Assert.assertTrue(e.getMessage().startsWith("Physical network ID can be specified for networks of guest IP type Shared only")); } }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); Mockito.when(networkOffering.getGuestType()).thenReturn(guestType); return networkOffering; }

Test Case ID #cloudstack_Test_241_3

Test Case Name: testGetPhysicalNetworkIdForSharedNet(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\network\CreateNetworkCmdTest.java)

Mock Object Variable Name: networkOffering

Suggested Diff
--- original +++ refactored @@ Long physicalNetworkId = 1L; Long networkOfferingId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); - NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); + NetworkOffering networkOffering = createMockNetworkOffering(Network.GuestType.Shared); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); - Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Shared); try { Assert.assertEquals(cmd.getPhysicalNetworkId(), physicalNetworkId); } catch (Exception e) { Assert.fail("Failed to get physical network id"); } @@
Original Test Code (click to expand)
public void testGetPhysicalNetworkIdForSharedNet() { Long physicalNetworkId = 1L; Long networkOfferingId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Shared); try { Assert.assertEquals(cmd.getPhysicalNetworkId(), physicalNetworkId); } catch (Exception e) { Assert.fail("Failed to get physical network id"); } }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); Mockito.when(networkOffering.getGuestType()).thenReturn(guestType); return networkOffering; }

Test Case ID #cloudstack_Test_241_4

Test Case Name: testGetZoneId(File: C:\Java_projects\Apache\cloudstack\api\src\test\java\org\apache\cloudstack\api\command\user\network\CreateNetworkCmdTest.java)

Mock Object Variable Name: networkOffering

Suggested Diff
--- original +++ refactored @@ Long physicalNetworkId = 1L; Long networkOfferingId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); - NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); + NetworkOffering networkOffering = createMockNetworkOffering(Network.GuestType.Shared); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); - Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Shared); Long zoneId = 1L; ReflectionTestUtils.setField(cmd, "zoneId", zoneId); Assert.assertEquals(cmd.getZoneId(), zoneId); @@
Original Test Code (click to expand)
public void testGetZoneId() { Long physicalNetworkId = 1L; Long networkOfferingId = 1L; ReflectionTestUtils.setField(cmd, "networkOfferingId", networkOfferingId); NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); ReflectionTestUtils.setField(cmd, "physicalNetworkId", physicalNetworkId); Mockito.when(_entityMgr.findById(NetworkOffering.class, networkOfferingId)).thenReturn(networkOffering); Mockito.when(networkOffering.getGuestType()).thenReturn(Network.GuestType.Shared); Long zoneId = 1L; ReflectionTestUtils.setField(cmd, "zoneId", zoneId); Assert.assertEquals(cmd.getZoneId(), zoneId); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering networkOffering = Mockito.mock(NetworkOffering.class); Mockito.when(networkOffering.getGuestType()).thenReturn(guestType); return networkOffering; }

Mock Clone Instance #cloudstack_MCI_242

Reusable Method

public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_242_1

Test Case Name: testCanHandle(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ public void testCanHandle() { - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported TrafficType != Guest when(offering.getTrafficType()).thenReturn(TrafficType.Management); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: GuestType Shared when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: Basic networking when(offering.getGuestType()).thenReturn(GuestType.Isolated); assertFalse(guru.canHandle(offering, NetworkType.Basic, physnet) == true); // Not supported: IsolationMethod != VCS when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); }
Original Test Code (click to expand)
@Test public void testCanHandle() { final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported TrafficType != Guest when(offering.getTrafficType()).thenReturn(TrafficType.Management); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: GuestType Shared when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: Basic networking when(offering.getGuestType()).thenReturn(GuestType.Isolated); assertFalse(guru.canHandle(offering, NetworkType.Basic, physnet) == true); // Not supported: IsolationMethod != VCS when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_2

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); @@
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vcs); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_3

Test Case Name: testDesignNoIsolationMethodVCS(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); @@
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodVCS() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_4

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); @@
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_5

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); mock(DeploymentPlan.class); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_6

Test Case Name: testImplementFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); @@
Original Test Code (click to expand)
@Test public void testImplementFail() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VCS" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(network.getBroadcastUri()).thenReturn(new URI("vlan://14")); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); when(guestGuru.implement(network, offering, dest, res)).thenReturn(network); final CreateNetworkAnswer answer = mock(CreateNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_7

Test Case Name: testTrash(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(network.getDataCenterId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); @@
Original Test Code (click to expand)
@Test public void testTrash() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsNetworkVlanMappingVO mapping = mock(BrocadeVcsNetworkVlanMappingVO.class); when(mapping.getVlanId()).thenReturn(14); when(vcsmapdao.findByNetworkId(anyLong())).thenReturn(mapping); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = new ArrayList(); devices.add(brocadeDevice); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final DeleteNetworkAnswer answer = mock(DeleteNetworkAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); when(vcsdao.remove((long) anyInt())).thenReturn(true); final boolean result = guru.trash(network, offering); assertTrue(result == true); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_8

Test Case Name: testTrashFail(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\brocade-vcs\src\test\java\com\cloud\network\guru\BrocadeVcsGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(network.getDataCenterId()).thenReturn(NETWORK_ID); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); @@
Original Test Code (click to expand)
@Test public void testTrashFail() { final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getId()).thenReturn(NETWORK_ID); when(network.getDataCenterId()).thenReturn(NETWORK_ID); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final HostVO brocadeHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(brocadeHost); when(brocadeHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final BrocadeVcsNetworkVlanMappingVO mapping = mock(BrocadeVcsNetworkVlanMappingVO.class); when(mapping.getVlanId()).thenReturn(14); when(vcsmapdao.findByNetworkId(anyLong())).thenReturn(mapping); when(vcsmapdao.remove(anyLong())).thenReturn(true); final BrocadeVcsDeviceVO brocadeDevice = mock(BrocadeVcsDeviceVO.class); when(brocadeDevice.getHostId()).thenReturn(NETWORK_ID); final List<BrocadeVcsDeviceVO> devices = mock(List.class); when(devices.isEmpty()).thenReturn(true); when(vcsdao.listByPhysicalNetwork(anyLong())).thenReturn(devices); final boolean result = guru.trash(network, offering); assertTrue(result == false); verify(agentmgr, times(0)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_9

Test Case Name: testCanHandle(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ public void testCanHandle() { - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Supported: IsolationMethod == VXLAN when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported TrafficType != Guest when(offering.getTrafficType()).thenReturn(TrafficType.Management); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Supported: GuestType Shared when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet)); // Not supported: Basic networking when(offering.getGuestType()).thenReturn(GuestType.Isolated); assertFalse(guru.canHandle(offering, NetworkType.Basic, physnet) == true); // Not supported: IsolationMethod != STT, VXLAN when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); }
Original Test Code (click to expand)
@Test public void testCanHandle() { final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Supported: IsolationMethod == VXLAN when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported TrafficType != Guest when(offering.getTrafficType()).thenReturn(TrafficType.Management); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Supported: GuestType Shared when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet)); // Not supported: Basic networking when(offering.getGuestType()).thenReturn(GuestType.Isolated); assertFalse(guru.canHandle(offering, NetworkType.Basic, physnet) == true); // Not supported: IsolationMethod != STT, VXLAN when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_10

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(device.getId()).thenReturn(1L); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); @@
Original Test Code (click to expand)
@Test public void testDesign() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true); when(netmodel.listNetworkOfferingServices(NETWORK_ID)).thenReturn(Arrays.asList(Service.Connectivity)); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Lswitch); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_11

Test Case Name: testDesignNoElementOnPhysicalNetwork(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); @@
Original Test Code (click to expand)
@Test public void testDesignNoElementOnPhysicalNetwork() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_12

Test Case Name: testDesignNoIsolationMethodSTT(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); @@
Original Test Code (click to expand)
@Test public void testDesignNoIsolationMethodSTT() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NiciraNvpDeviceVO>emptyList()); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_13

Test Case Name: testDesignNoConnectivityInOffering(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(device.getId()).thenReturn(1L); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); @@
Original Test Code (click to expand)
@Test public void testDesignNoConnectivityInOffering() { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); final DeploymentPlan plan = mock(DeploymentPlan.class); final Network network = mock(Network.class); final Account account = mock(Account.class); final Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork == null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_14

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_15

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_16

Test Case Name: testImplementURIException(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); @@
Original Test Code (click to expand)
@Test public void testImplementURIException() throws InsufficientVirtualNetworkCapacityException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final CreateLogicalSwitchAnswer answer = mock(CreateLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); //when(answer.getLogicalSwitchUuid()).thenReturn("aaaaa"); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork == null); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_17

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\nicira-nvp\src\test\java\com\cloud\network\guru\NiciraNvpGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(device.getId()).thenReturn(1L); - final NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(NETWORK_ID); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + final NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(NETWORK_ID, TrafficType.Guest, GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); @@ when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); - when(offering.isSpecifyVlan()).thenReturn(false); + when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); @@
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById((Long) any())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "STT", "VXLAN" })); when(physnet.getId()).thenReturn(NETWORK_ID); final NiciraNvpDeviceVO device = mock(NiciraNvpDeviceVO.class); when(nvpdao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NiciraNvpDeviceVO[] { device })); when(device.getId()).thenReturn(1L); final NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(NETWORK_ID); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); when(nosd.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(false); mock(DeploymentPlan.class); final NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch); when(network.getBroadcastUri()).thenReturn(new URI("lswitch:aaaaa")); when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID); when(netdao.findById(NETWORK_ID)).thenReturn(network); final DeployDestination dest = mock(DeployDestination.class); final DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); final HostVO niciraHost = mock(HostVO.class); when(hostdao.findById(anyLong())).thenReturn(niciraHost); when(niciraHost.getDetail("transportzoneuuid")).thenReturn("aaaa"); when(niciraHost.getDetail("transportzoneisotype")).thenReturn("stt"); when(niciraHost.getId()).thenReturn(NETWORK_ID); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(NETWORK_ID); final Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); final Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); final ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); final DeleteLogicalSwitchAnswer answer = mock(DeleteLogicalSwitchAnswer.class); when(answer.getResult()).thenReturn(true); when(agentmgr.easySend(eq(NETWORK_ID), (Command) any())).thenReturn(answer); final NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(NETWORK_ID); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("lswitch:aaaa")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(agentmgr, times(1)).easySend(eq(NETWORK_ID), (Command) any()); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_18

Test Case Name: testCanHandle(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ public void testCanHandle() { - NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(42L); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(42L, TrafficType.Guest, GuestType.Isolated); PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported TrafficType != Guest when(offering.getTrafficType()).thenReturn(TrafficType.Management); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: GuestType Shared when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: Basic networking when(offering.getGuestType()).thenReturn(GuestType.Isolated); assertFalse(guru.canHandle(offering, NetworkType.Basic, physnet) == true); // Not supported: IsolationMethod != VXLAN when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); }
Original Test Code (click to expand)
@Test public void testCanHandle() { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); assertTrue(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported TrafficType != Guest when(offering.getTrafficType()).thenReturn(TrafficType.Management); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: GuestType Shared when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Shared); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); // Not supported: Basic networking when(offering.getGuestType()).thenReturn(GuestType.Isolated); assertFalse(guru.canHandle(offering, NetworkType.Basic, physnet) == true); // Not supported: IsolationMethod != VXLAN when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VLAN" })); assertFalse(guru.canHandle(offering, NetworkType.Advanced, physnet) == true); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_19

Test Case Name: testDesign(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); - NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(42L); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(42L, TrafficType.Guest, GuestType.Isolated); DeploymentPlan plan = mock(DeploymentPlan.class); Network network = mock(Network.class); Account account = mock(Account.class); Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vxlan); }
Original Test Code (click to expand)
@Test public void testDesign() { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); DeploymentPlan plan = mock(DeploymentPlan.class); Network network = mock(Network.class); Account account = mock(Account.class); Network designednetwork = guru.design(offering, plan, network, account); assertTrue(designednetwork != null); assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vxlan); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_20

Test Case Name: testImplement(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); - NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(42L); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(42L, TrafficType.Guest, GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); @@
Original Test Code (click to expand)
@Test public void testImplement() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_21

Test Case Name: testImplementWithCidr(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); - NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(42L); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(42L, TrafficType.Guest, GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); @@
Original Test Code (click to expand)
@Test public void testImplementWithCidr() throws InsufficientVirtualNetworkCapacityException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getGateway()).thenReturn("10.1.1.1"); when(network.getCidr()).thenReturn("10.1.1.0/24"); when(network.getPhysicalNetworkId()).thenReturn(42L); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); //TODO(VXLAN): doesn't support VNI specified //when(confsvr.getConfigValue((String) any(), (String) any(), anyLong())).thenReturn("true"); when(dcdao.allocateVnet(anyLong(), anyLong(), anyLong(), (String) any(), eq(true))).thenReturn("42"); doNothing().when(guru).allocateVnetComplete((Network) any(), (NetworkVO) any(), anyLong(), anyLong(), (String) any(), eq("42")); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); Network implementednetwork = guru.implement(network, offering, dest, res); assertTrue(implementednetwork != null); assertTrue(implementednetwork.getCidr().equals("10.1.1.0/24")); assertTrue(implementednetwork.getGateway().equals("10.1.1.1")); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_22

Test Case Name: testShutdown(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\vxlan\src\test\java\com\cloud\network\guru\VxlanGuestNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); - NetworkOffering offering = mock(NetworkOffering.class); - when(offering.getId()).thenReturn(42L); - when(offering.getTrafficType()).thenReturn(TrafficType.Guest); - when(offering.getGuestType()).thenReturn(GuestType.Isolated); + NetworkOffering offering = MockNetworkOffering.createMockNetworkOffering(42L, TrafficType.Guest, GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); @@ when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); - when(offering.isSpecifyVlan()).thenReturn(false); + when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Original Test Code (click to expand)
@Test public void testShutdown() throws InsufficientVirtualNetworkCapacityException, URISyntaxException { PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class); when(physnetdao.findById(anyLong())).thenReturn(physnet); when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] { "VXLAN" })); when(physnet.getId()).thenReturn(42L); NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(42L); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getGuestType()).thenReturn(GuestType.Isolated); NetworkVO network = mock(NetworkVO.class); when(network.getName()).thenReturn("testnetwork"); when(network.getState()).thenReturn(State.Implementing); when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vxlan); when(network.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(network.getPhysicalNetworkId()).thenReturn(42L); when(netdao.findById(42L)).thenReturn(network); DeployDestination dest = mock(DeployDestination.class); DataCenter dc = mock(DataCenter.class); when(dest.getDataCenter()).thenReturn(dc); when(netmodel.findPhysicalNetworkId(anyLong(), (String) any(), (TrafficType) any())).thenReturn(42L); Domain dom = mock(Domain.class); when(dom.getName()).thenReturn("domain"); Account acc = mock(Account.class); when(acc.getAccountName()).thenReturn("accountname"); ReservationContext res = mock(ReservationContext.class); when(res.getDomain()).thenReturn(dom); when(res.getAccount()).thenReturn(acc); NetworkProfile implementednetwork = mock(NetworkProfile.class); when(implementednetwork.getId()).thenReturn(42L); when(implementednetwork.getBroadcastUri()).thenReturn(new URI("vxlan:12345")); when(offering.isSpecifyVlan()).thenReturn(false); guru.shutdown(implementednetwork, offering); verify(implementednetwork, times(1)).setBroadcastUri(null); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_23

Test Case Name: testCanDesign(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\guru\DirectNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
@@ when(plan.getPhysicalNetworkId()).thenReturn(1l); when(physicalNetworkDao.findById(physicalNetwork.getId())).thenReturn(physicalNetwork); - when(offering.isRedundantRouter()).thenReturn(false); + offering = MockNetworkOffering.createMockNetworkOffering(42l, TrafficType.Guest, GuestType.Shared); + when(offering.isRedundantRouter()).thenReturn(false); when(networkModel.areServicesSupportedByNetworkOffering(offering.getId(), Network.Service.SecurityGroup)).thenReturn(true); assertNotNull(guru.design(offering, plan, network, owner)); } @@
Original Test Code (click to expand)
@Test public void testCanDesign() { when(dcDao.findById(dc.getId())).thenReturn(dc); when(plan.getDataCenterId()).thenReturn(1l); when(plan.getPhysicalNetworkId()).thenReturn(1l); when(physicalNetworkDao.findById(physicalNetwork.getId())).thenReturn(physicalNetwork); when(offering.isRedundantRouter()).thenReturn(false); when(networkModel.areServicesSupportedByNetworkOffering(offering.getId(), Network.Service.SecurityGroup)).thenReturn(true); assertNotNull(guru.design(offering, plan, network, owner)); } @Before public void setup() { MockitoAnnotations.initMocks(this); guru._ntwkOfferingSrvcDao = ntwkOfferingSrvcDao; guru._dcDao = dcDao; guru._physicalNetworkDao = physicalNetworkDao; guru._networkModel = networkModel; when(physicalNetwork.getId()).thenReturn(1l); when(physicalNetwork.getIsolationMethods()).thenReturn(Arrays.asList("VXLAN", "VLAN")); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(dc.getId()).thenReturn(1l); when(offering.getGuestType()).thenReturn(GuestType.Shared); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getId()).thenReturn(42l); when(ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Network.Provider.NiciraNvp)).thenReturn(false); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Test Case ID #cloudstack_Test_242_24

Test Case Name: testDesignDns(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\guru\DirectNetworkGuruTest.java)

Mock Object Variable Name: offering

Suggested Diff
@@ when(physicalNetworkDao.findById(physicalNetwork.getId())).thenReturn(physicalNetwork); - when(offering.isRedundantRouter()).thenReturn(false); + offering = MockNetworkOffering.createMockNetworkOffering(42l, TrafficType.Guest, GuestType.Shared); + when(offering.isRedundantRouter()).thenReturn(false); when(network.getDns1()).thenReturn(ip4Dns[0]); when(network.getDns2()).thenReturn(ip4Dns[1]);
Original Test Code (click to expand)
@Before public void setup() { MockitoAnnotations.initMocks(this); guru._ntwkOfferingSrvcDao = ntwkOfferingSrvcDao; guru._dcDao = dcDao; guru._physicalNetworkDao = physicalNetworkDao; guru._networkModel = networkModel; when(physicalNetwork.getId()).thenReturn(1l); when(physicalNetwork.getIsolationMethods()).thenReturn(Arrays.asList("VXLAN", "VLAN")); when(dc.getNetworkType()).thenReturn(NetworkType.Advanced); when(dc.getId()).thenReturn(1l); when(offering.getGuestType()).thenReturn(GuestType.Shared); when(offering.getTrafficType()).thenReturn(TrafficType.Guest); when(offering.getId()).thenReturn(42l); when(ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Network.Provider.NiciraNvp)).thenReturn(false); } @Test public void testDesignDns() { when(dcDao.findById(dc.getId())).thenReturn(dc); when(plan.getDataCenterId()).thenReturn(1l); when(plan.getPhysicalNetworkId()).thenReturn(1l); when(physicalNetworkDao.findById(physicalNetwork.getId())).thenReturn(physicalNetwork); when(offering.isRedundantRouter()).thenReturn(false); when(network.getDns1()).thenReturn(ip4Dns[0]); when(network.getDns2()).thenReturn(ip4Dns[1]); when(network.getIp6Dns1()).thenReturn(ip6Dns[0]); when(network.getIp6Dns2()).thenReturn(ip6Dns[1]); when(networkModel.areServicesSupportedByNetworkOffering(offering.getId(), Network.Service.SecurityGroup)).thenReturn(false); Network config = guru.design(offering, plan, network, owner); assertNotNull(config); assertEquals(ip4Dns[0], config.getDns1()); assertEquals(ip4Dns[1], config.getDns2()); assertEquals(ip6Dns[0], config.getIp6Dns1()); assertEquals(ip6Dns[1], config.getIp6Dns2()); }
Reusable Method for MCI (click to expand)
public class MockNetworkOffering { public static NetworkOffering createMockNetworkOffering(long idReturn, Networks.TrafficType trafficTypeReturn, Network.GuestType guestTypeReturn) { NetworkOffering offering = mock(NetworkOffering.class); when(offering.getId()).thenReturn(idReturn); when(offering.getTrafficType()).thenReturn(trafficTypeReturn); when(offering.getGuestType()).thenReturn(guestTypeReturn); return offering; } }

Mock Clone Instance #cloudstack_MCI_243

Reusable Method

private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_243_1

Test Case Name: testCheckAndUpdateNetworkNoUpdate(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ NetworkVO network1 = Mockito.mock(NetworkVO.class); Mockito.when(network1.getDns1()).thenReturn(ip4Dns[0]); Long offeringId = 1L; - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getId()).thenReturn(offeringId); + NetworkOffering offering = createMockNetworkOffering(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); Assert.assertFalse(service.checkAndUpdateNetworkDns(network1, offering, null, null, null, null)); @@
Original Test Code (click to expand)
@Test public void testCheckAndUpdateNetworkNoUpdate() { Assert.assertFalse(service.checkAndUpdateNetworkDns(Mockito.mock(NetworkVO.class), Mockito.mock(NetworkOffering.class), null, null, null, null)); NetworkVO network1 = Mockito.mock(NetworkVO.class); Mockito.when(network1.getDns1()).thenReturn(ip4Dns[0]); Long offeringId = 1L; NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); Assert.assertFalse(service.checkAndUpdateNetworkDns(network1, offering, null, null, null, null)); Assert.assertFalse(service.checkAndUpdateNetworkDns(network1, Mockito.mock(NetworkOffering.class), ip4Dns[0], null, null, null)); Mockito.when(network1.getIp6Dns1()).thenReturn(ip6Dns[0]); Assert.assertFalse(service.checkAndUpdateNetworkDns(network1, Mockito.mock(NetworkOffering.class), ip4Dns[0], null, ip6Dns[0], null)); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

Test Case ID #cloudstack_Test_243_2

Test Case Name: testCheckAndUpdateNetworkOfferingChangeReset(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ NetworkVO networkVO = new NetworkVO(); networkVO.setDns1(ip4Dns[0]); Long offeringId = 1L; - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getId()).thenReturn(offeringId); + NetworkOffering offering = createMockNetworkOffering(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(false); Assert.assertTrue(service.checkAndUpdateNetworkDns(networkVO, offering, null, null, null, null)); Assert.assertNull(networkVO.getDns1()); Assert.assertNull(networkVO.getDns2()); Assert.assertNull(networkVO.getIp6Dns1()); Assert.assertNull(networkVO.getIp6Dns2()); @@
Original Test Code (click to expand)
@Test public void testCheckAndUpdateNetworkOfferingChangeReset() { NetworkVO networkVO = new NetworkVO(); networkVO.setDns1(ip4Dns[0]); Long offeringId = 1L; NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(false); Assert.assertTrue(service.checkAndUpdateNetworkDns(networkVO, offering, null, null, null, null)); Assert.assertNull(networkVO.getDns1()); Assert.assertNull(networkVO.getDns2()); Assert.assertNull(networkVO.getIp6Dns1()); Assert.assertNull(networkVO.getIp6Dns2()); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

Test Case ID #cloudstack_Test_243_3

Test Case Name: testCheckAndUpdateNetworkDnsServiceFailure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
@@ NetworkVO networkVO = Mockito.mock(NetworkVO.class); Mockito.when(networkVO.getVpcId()).thenReturn(null); Long offeringId = 1L; - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getId()).thenReturn(offeringId); - Mockito.when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); + NetworkOffering offering = createMockNetworkOffering(offeringId); + Mockito.when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(false); service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, null, null); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCheckAndUpdateNetworkDnsServiceFailure() { NetworkVO networkVO = Mockito.mock(NetworkVO.class); Mockito.when(networkVO.getVpcId()).thenReturn(null); Long offeringId = 1L; NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); Mockito.when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(false); service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, null, null); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

Test Case ID #cloudstack_Test_243_4

Test Case Name: testCheckAndUpdateNetworkNotSharedIp6Failure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ Mockito.when(networkVO.getGuestType()).thenReturn(Network.GuestType.Shared); Long offeringId = 1L; - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getId()).thenReturn(offeringId); + NetworkOffering offering = createMockNetworkOffering(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); service.checkAndUpdateNetworkDns(networkVO, offering, null, null, ip6Dns[0], null); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCheckAndUpdateNetworkNotSharedIp6Failure() { NetworkVO networkVO = Mockito.mock(NetworkVO.class); Mockito.when(networkVO.getVpcId()).thenReturn(null); Mockito.when(networkVO.getIp6Cidr()).thenReturn(null); Mockito.when(networkVO.getGuestType()).thenReturn(Network.GuestType.Shared); Long offeringId = 1L; NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); service.checkAndUpdateNetworkDns(networkVO, offering, null, null, ip6Dns[0], null); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

Test Case ID #cloudstack_Test_243_5

Test Case Name: testCheckAndUpdateNetworkNotIsolatedIp6Failure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ Mockito.when(networkVO.getGuestType()).thenReturn(Network.GuestType.Isolated); Long offeringId = 1L; - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getId()).thenReturn(offeringId); + NetworkOffering offering = createMockNetworkOffering(offeringId); Mockito.when(networkOfferingDao.isIpv6Supported(offeringId)).thenReturn(false); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); service.checkAndUpdateNetworkDns(networkVO, offering, null, null, ip6Dns[0], null); } @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCheckAndUpdateNetworkNotIsolatedIp6Failure() { NetworkVO networkVO = Mockito.mock(NetworkVO.class); Mockito.when(networkVO.getVpcId()).thenReturn(null); Mockito.when(networkVO.getGuestType()).thenReturn(Network.GuestType.Isolated); Long offeringId = 1L; NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); Mockito.when(networkOfferingDao.isIpv6Supported(offeringId)).thenReturn(false); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); service.checkAndUpdateNetworkDns(networkVO, offering, null, null, ip6Dns[0], null); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

Test Case ID #cloudstack_Test_243_6

Test Case Name: testCheckAndUpdateNetworkSuccess(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ networkVO.setIp6Cidr("cidr"); Long offeringId = 1L; - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getId()).thenReturn(offeringId); + NetworkOffering offering = createMockNetworkOffering(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); boolean updated = service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, ip6Dns[0], null); Assert.assertTrue(updated); @@
Original Test Code (click to expand)
@Test public void testCheckAndUpdateNetworkSuccess() { NetworkVO networkVO = new NetworkVO(); networkVO.setVpcId(null); try { Field id = networkVO.getClass().getDeclaredField("guestType"); id.setAccessible(true); id.set(networkVO, Network.GuestType.Shared); } catch (NoSuchFieldException | IllegalAccessException e) { Assert.fail(String.format("Unable to set network guestType, %s", e.getMessage())); } networkVO.setIp6Cidr("cidr"); Long offeringId = 1L; NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); boolean updated = service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, ip6Dns[0], null); Assert.assertTrue(updated); Assert.assertEquals(ip4Dns[0], networkVO.getDns1()); Assert.assertNull(networkVO.getDns2()); Assert.assertEquals(ip6Dns[0], networkVO.getIp6Dns1()); Assert.assertNull(networkVO.getIp6Dns2()); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

Test Case ID #cloudstack_Test_243_7

Test Case Name: testCheckAndUpdateNetworkResetSuccess(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ networkVO.setIp6Cidr("cidr"); Long offeringId = 1L; - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getId()).thenReturn(offeringId); + NetworkOffering offering = createMockNetworkOffering(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); boolean updated = service.checkAndUpdateNetworkDns(networkVO, offering, "", null, "", null); Assert.assertTrue(updated); Assert.assertNull(networkVO.getDns1()); Assert.assertNull(networkVO.getDns2()); Assert.assertNull(networkVO.getIp6Dns1()); Assert.assertNull(networkVO.getIp6Dns2()); }
Original Test Code (click to expand)
@Test public void testCheckAndUpdateNetworkResetSuccess() { NetworkVO networkVO = new NetworkVO(); networkVO.setVpcId(null); networkVO.setDns1(ip4Dns[0]); networkVO.setIp6Dns1(ip6Dns[0]); try { Field id = networkVO.getClass().getDeclaredField("guestType"); id.setAccessible(true); id.set(networkVO, Network.GuestType.Shared); } catch (NoSuchFieldException | IllegalAccessException e) { Assert.fail(String.format("Unable to set network guestType, %s", e.getMessage())); } networkVO.setIp6Cidr("cidr"); Long offeringId = 1L; NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); Mockito.when(networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(offeringId, Network.Service.Dns)).thenReturn(true); boolean updated = service.checkAndUpdateNetworkDns(networkVO, offering, "", null, "", null); Assert.assertTrue(updated); Assert.assertNull(networkVO.getDns1()); Assert.assertNull(networkVO.getDns2()); Assert.assertNull(networkVO.getIp6Dns1()); Assert.assertNull(networkVO.getIp6Dns2()); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Long offeringId) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getId()).thenReturn(offeringId); return offering; }

Mock Clone Instance #cloudstack_MCI_244

Reusable Method

private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getGuestType()).thenReturn(guestType); return offering; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_244_1

Test Case Name: testCheckAndUpdateNetworkDnsL2NetworkFailure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
@@ NetworkVO networkVO = Mockito.mock(NetworkVO.class); - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getGuestType()).thenReturn(Network.GuestType.L2); + NetworkOffering offering = createMockNetworkOffering(Network.GuestType.L2); service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, null, null); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCheckAndUpdateNetworkDnsL2NetworkFailure() { NetworkVO networkVO = Mockito.mock(NetworkVO.class); NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getGuestType()).thenReturn(Network.GuestType.L2); service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, null, null); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getGuestType()).thenReturn(guestType); return offering; }

Test Case ID #cloudstack_Test_244_2

Test Case Name: testCheckAndUpdateNetworkDnsVpcTierFailure(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\NetworkServiceImplTest.java)

Mock Object Variable Name: offering

Suggested Diff
--- original +++ refactored @@ NetworkVO networkVO = Mockito.mock(NetworkVO.class); Mockito.when(networkVO.getVpcId()).thenReturn(1L); - NetworkOffering offering = Mockito.mock(NetworkOffering.class); - Mockito.when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); + NetworkOffering offering = createMockNetworkOffering(Network.GuestType.Shared); service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, null, null); @@
Original Test Code (click to expand)
@Test(expected = InvalidParameterValueException.class) public void testCheckAndUpdateNetworkDnsVpcTierFailure() { NetworkVO networkVO = Mockito.mock(NetworkVO.class); Mockito.when(networkVO.getVpcId()).thenReturn(1L); NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getGuestType()).thenReturn(Network.GuestType.Shared); service.checkAndUpdateNetworkDns(networkVO, offering, ip4Dns[0], null, null, null); }
Reusable Method for MCI (click to expand)
private static NetworkOffering createMockNetworkOffering(Network.GuestType guestType) { NetworkOffering offering = Mockito.mock(NetworkOffering.class); Mockito.when(offering.getGuestType()).thenReturn(guestType); return offering; }

Mock Clone Instance #cloudstack_MCI_245

Reusable Method

private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(DataObject.class), any(DataObject.class)); return strategy; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_245_1

Test Case Name: testSortDataMotionStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: cantHandleStrategy

Suggested Diff
--- original +++ refactored @@ @Test public void testSortDataMotionStrategies() { - DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); + DataMotionStrategy cantHandleStrategy = createMockDataMotionStrategy(StrategyPriority.CANT_HANDLE); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); - doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); } @@
Original Test Code (click to expand)
@Test public void testSortDataMotionStrategies() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(DataObject.class), any(DataObject.class)); return strategy; }

Test Case ID #cloudstack_Test_245_2

Test Case Name: testSortDataMotionStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: defaultStrategy

Suggested Diff
--- original +++ refactored @@ DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); - DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); - doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); + DataMotionStrategy defaultStrategy = createMockDataMotionStrategy(StrategyPriority.DEFAULT); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); @@
Original Test Code (click to expand)
@Test public void testSortDataMotionStrategies() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(DataObject.class), any(DataObject.class)); return strategy; }

Test Case ID #cloudstack_Test_245_3

Test Case Name: testSortDataMotionStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: hyperStrategy

Suggested Diff
--- original +++ refactored @@ DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); - DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); - doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); + DataMotionStrategy hyperStrategy = createMockDataMotionStrategy(StrategyPriority.HYPERVISOR); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); @@
Original Test Code (click to expand)
@Test public void testSortDataMotionStrategies() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(DataObject.class), any(DataObject.class)); return strategy; }

Test Case ID #cloudstack_Test_245_4

Test Case Name: testSortDataMotionStrategies(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: highestStrategy

Suggested Diff
--- original +++ refactored @@ DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); - DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); + DataMotionStrategy highestStrategy = createMockDataMotionStrategy(StrategyPriority.HIGHEST); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); - doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); @@
Original Test Code (click to expand)
@Test public void testSortDataMotionStrategies() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(DataObject.class), any(DataObject.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(DataObject.class), any(DataObject.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(DataObject.class), mock(DataObject.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(DataObject.class), any(DataObject.class)); return strategy; }

Mock Clone Instance #cloudstack_MCI_246

Reusable Method

private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); return strategy; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_246_1

Test Case Name: testSortDataMotionStrategies2(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: cantHandleStrategy

Suggested Diff
--- original +++ refactored @@ @Test @SuppressWarnings("unchecked") public void testSortDataMotionStrategies2() { - DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); + DataMotionStrategy cantHandleStrategy = createMockDataMotionStrategy(StrategyPriority.CANT_HANDLE); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); - doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); } @@
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") public void testSortDataMotionStrategies2() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); return strategy; }

Test Case ID #cloudstack_Test_246_2

Test Case Name: testSortDataMotionStrategies2(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: defaultStrategy

Suggested Diff
--- original +++ refactored @@ DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); - DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); - doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); + DataMotionStrategy defaultStrategy = createMockDataMotionStrategy(StrategyPriority.DEFAULT); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); @@
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") public void testSortDataMotionStrategies2() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); return strategy; }

Test Case ID #cloudstack_Test_246_3

Test Case Name: testSortDataMotionStrategies2(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: hyperStrategy

Suggested Diff
--- original +++ refactored @@ DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); - DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); - doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); + DataMotionStrategy hyperStrategy = createMockDataMotionStrategy(StrategyPriority.HYPERVISOR); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); @@
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") public void testSortDataMotionStrategies2() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); return strategy; }

Test Case ID #cloudstack_Test_246_4

Test Case Name: testSortDataMotionStrategies2(File: C:\Java_projects\Apache\cloudstack\engine\storage\src\test\java\org\apache\cloudstack\engine\subsystem\api\storage\StrategyPriorityTest.java)

Mock Object Variable Name: highestStrategy

Suggested Diff
@@ DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); - DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); - doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); + DataMotionStrategy highestStrategy = createMockDataMotionStrategy(StrategyPriority.HIGHEST); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); @@
Original Test Code (click to expand)
@Test @SuppressWarnings("unchecked") public void testSortDataMotionStrategies2() { DataMotionStrategy cantHandleStrategy = mock(DataMotionStrategy.class); DataMotionStrategy defaultStrategy = mock(DataMotionStrategy.class); DataMotionStrategy hyperStrategy = mock(DataMotionStrategy.class); DataMotionStrategy highestStrategy = mock(DataMotionStrategy.class); doReturn(StrategyPriority.CANT_HANDLE).when(cantHandleStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.DEFAULT).when(defaultStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HYPERVISOR).when(hyperStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); doReturn(StrategyPriority.HIGHEST).when(highestStrategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); List<DataMotionStrategy> strategies = new ArrayList<DataMotionStrategy>(5); DataMotionStrategy strategy = null; StorageStrategyFactoryImpl factory = new StorageStrategyFactoryImpl(); factory.setDataMotionStrategies(strategies); strategies.add(cantHandleStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("A strategy was found when it shouldn't have been.", null, strategy); strategies.add(defaultStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Default strategy was not picked.", defaultStrategy, strategy); strategies.add(hyperStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Hypervisor strategy was not picked.", hyperStrategy, strategy); strategies.add(highestStrategy); strategy = factory.getDataMotionStrategy(mock(Map.class), mock(Host.class), mock(Host.class)); assertEquals("Highest strategy was not picked.", highestStrategy, strategy); }
Reusable Method for MCI (click to expand)
private static DataMotionStrategy createMockDataMotionStrategy(StrategyPriority priority) { DataMotionStrategy strategy = mock(DataMotionStrategy.class); doReturn(priority).when(strategy).canHandle(any(Map.class), any(Host.class), any(Host.class)); return strategy; }

Mock Clone Instance #cloudstack_MCI_247

Reusable Method

private static Volume createMockVolume(Volume.Type volumeType) { Volume volume = Mockito.mock(Volume.class); Mockito.when(volume.getVolumeType()).thenReturn(volumeType); return volume; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_247_1

Test Case Name: finalizeMigrateForLocalStorageToHaveTargetHostGuid(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\com\cloud\hypervisor\guru\VMwareGuruTest.java)

Mock Object Variable Name: rootVolume

Suggested Diff
--- original +++ refactored @@ VirtualMachine vm = Mockito.mock(VirtualMachine.class); Map<Volume, StoragePool> volumeToPool = new HashMap<>(); - Volume rootVolume = Mockito.mock(Volume.class); + Volume rootVolume = createMockVolume(Volume.Type.ROOT); Volume dataVolume = Mockito.mock(Volume.class); StoragePool localStorage = Mockito.mock(StoragePool.class); volumeToPool.put(rootVolume, localStorage); volumeToPool.put(dataVolume, localStorage); // prepare localstorage host guid StoragePoolVO storagePoolVO = Mockito.mock(StoragePoolVO.class); StoragePoolHostVO storagePoolHostVO = Mockito.mock(StoragePoolHostVO.class); HostVO hostVO = Mockito.mock(HostVO.class); Mockito.when(localStorage.getId()).thenReturn(1L); Mockito.when(vm.getId()).thenReturn(1L); Mockito.when(_storagePoolDao.findById(1L)).thenReturn(storagePoolVO); - Mockito.when(rootVolume.getVolumeType()).thenReturn(Volume.Type.ROOT); Mockito.when(dataVolume.getVolumeType()).thenReturn(Volume.Type.DATADISK); Mockito.when(localStorage.isLocal()).thenReturn(true); Pair<Long, Long> clusterAndHost = new Pair<>(1L, 1L); Mockito.when(vmManager.findClusterAndHostIdForVm(1L)).thenReturn(clusterAndHost); List<StoragePoolHostVO> storagePoolHostVOS = new ArrayList<>(); storagePoolHostVOS.add(storagePoolHostVO); Mockito.when(storagePoolHostDao.listByPoolId(1L)).thenReturn(storagePoolHostVOS); Mockito.when(storagePoolHostVO.getHostId()).thenReturn(2L); Mockito.when(_hostDao.findById(2L)).thenReturn(hostVO); Mockito.when(hostVO.getGuid()).thenReturn("HostSystem:host-a@x.x.x.x"); List<Command> commandsList = vMwareGuru.finalizeMigrate(vm, volumeToPool); MigrateVmToPoolCommand migrateVmToPoolCommand = (MigrateVmToPoolCommand) commandsList.get(0); Assert.assertEquals("HostSystem:host-a@x.x.x.x", migrateVmToPoolCommand.getHostGuidInTargetCluster()); @@
Original Test Code (click to expand)
@Test public void finalizeMigrateForLocalStorageToHaveTargetHostGuid() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Map<Volume, StoragePool> volumeToPool = new HashMap<>(); Volume rootVolume = Mockito.mock(Volume.class); Volume dataVolume = Mockito.mock(Volume.class); StoragePool localStorage = Mockito.mock(StoragePool.class); volumeToPool.put(rootVolume, localStorage); volumeToPool.put(dataVolume, localStorage); // prepare localstorage host guid StoragePoolVO storagePoolVO = Mockito.mock(StoragePoolVO.class); StoragePoolHostVO storagePoolHostVO = Mockito.mock(StoragePoolHostVO.class); HostVO hostVO = Mockito.mock(HostVO.class); Mockito.when(localStorage.getId()).thenReturn(1L); Mockito.when(vm.getId()).thenReturn(1L); Mockito.when(_storagePoolDao.findById(1L)).thenReturn(storagePoolVO); Mockito.when(rootVolume.getVolumeType()).thenReturn(Volume.Type.ROOT); Mockito.when(dataVolume.getVolumeType()).thenReturn(Volume.Type.DATADISK); Mockito.when(localStorage.isLocal()).thenReturn(true); Pair<Long, Long> clusterAndHost = new Pair<>(1L, 1L); Mockito.when(vmManager.findClusterAndHostIdForVm(1L)).thenReturn(clusterAndHost); List<StoragePoolHostVO> storagePoolHostVOS = new ArrayList<>(); storagePoolHostVOS.add(storagePoolHostVO); Mockito.when(storagePoolHostDao.listByPoolId(1L)).thenReturn(storagePoolHostVOS); Mockito.when(storagePoolHostVO.getHostId()).thenReturn(2L); Mockito.when(_hostDao.findById(2L)).thenReturn(hostVO); Mockito.when(hostVO.getGuid()).thenReturn("HostSystem:host-a@x.x.x.x"); List<Command> commandsList = vMwareGuru.finalizeMigrate(vm, volumeToPool); MigrateVmToPoolCommand migrateVmToPoolCommand = (MigrateVmToPoolCommand) commandsList.get(0); Assert.assertEquals("HostSystem:host-a@x.x.x.x", migrateVmToPoolCommand.getHostGuidInTargetCluster()); }
Reusable Method for MCI (click to expand)
private static Volume createMockVolume(Volume.Type volumeType) { Volume volume = Mockito.mock(Volume.class); Mockito.when(volume.getVolumeType()).thenReturn(volumeType); return volume; }

Test Case ID #cloudstack_Test_247_2

Test Case Name: finalizeMigrateForLocalStorageToHaveTargetHostGuid(File: C:\Java_projects\Apache\cloudstack\plugins\hypervisors\vmware\src\test\java\com\cloud\hypervisor\guru\VMwareGuruTest.java)

Mock Object Variable Name: dataVolume

Suggested Diff
--- original +++ refactored @@ Volume rootVolume = Mockito.mock(Volume.class); - Volume dataVolume = Mockito.mock(Volume.class); + Volume dataVolume = createMockVolume(Volume.Type.DATADISK); StoragePool localStorage = Mockito.mock(StoragePool.class); volumeToPool.put(rootVolume, localStorage); volumeToPool.put(dataVolume, localStorage); // prepare localstorage host guid StoragePoolVO storagePoolVO = Mockito.mock(StoragePoolVO.class); StoragePoolHostVO storagePoolHostVO = Mockito.mock(StoragePoolHostVO.class); HostVO hostVO = Mockito.mock(HostVO.class); Mockito.when(localStorage.getId()).thenReturn(1L); Mockito.when(vm.getId()).thenReturn(1L); Mockito.when(_storagePoolDao.findById(1L)).thenReturn(storagePoolVO); Mockito.when(rootVolume.getVolumeType()).thenReturn(Volume.Type.ROOT); - Mockito.when(dataVolume.getVolumeType()).thenReturn(Volume.Type.DATADISK); Mockito.when(localStorage.isLocal()).thenReturn(true); Pair<Long, Long> clusterAndHost = new Pair<>(1L, 1L); Mockito.when(vmManager.findClusterAndHostIdForVm(1L)).thenReturn(clusterAndHost); List<StoragePoolHostVO> storagePoolHostVOS = new ArrayList<>(); storagePoolHostVOS.add(storagePoolHostVO); Mockito.when(storagePoolHostDao.listByPoolId(1L)).thenReturn(storagePoolHostVOS); Mockito.when(storagePoolHostVO.getHostId()).thenReturn(2L); Mockito.when(_hostDao.findById(2L)).thenReturn(hostVO); Mockito.when(hostVO.getGuid()).thenReturn("HostSystem:host-a@x.x.x.x"); List<Command> commandsList = vMwareGuru.finalizeMigrate(vm, volumeToPool); MigrateVmToPoolCommand migrateVmToPoolCommand = (MigrateVmToPoolCommand) commandsList.get(0); Assert.assertEquals("HostSystem:host-a@x.x.x.x", migrateVmToPoolCommand.getHostGuidInTargetCluster()); @@
Original Test Code (click to expand)
@Test public void finalizeMigrateForLocalStorageToHaveTargetHostGuid() { VirtualMachine vm = Mockito.mock(VirtualMachine.class); Map<Volume, StoragePool> volumeToPool = new HashMap<>(); Volume rootVolume = Mockito.mock(Volume.class); Volume dataVolume = Mockito.mock(Volume.class); StoragePool localStorage = Mockito.mock(StoragePool.class); volumeToPool.put(rootVolume, localStorage); volumeToPool.put(dataVolume, localStorage); // prepare localstorage host guid StoragePoolVO storagePoolVO = Mockito.mock(StoragePoolVO.class); StoragePoolHostVO storagePoolHostVO = Mockito.mock(StoragePoolHostVO.class); HostVO hostVO = Mockito.mock(HostVO.class); Mockito.when(localStorage.getId()).thenReturn(1L); Mockito.when(vm.getId()).thenReturn(1L); Mockito.when(_storagePoolDao.findById(1L)).thenReturn(storagePoolVO); Mockito.when(rootVolume.getVolumeType()).thenReturn(Volume.Type.ROOT); Mockito.when(dataVolume.getVolumeType()).thenReturn(Volume.Type.DATADISK); Mockito.when(localStorage.isLocal()).thenReturn(true); Pair<Long, Long> clusterAndHost = new Pair<>(1L, 1L); Mockito.when(vmManager.findClusterAndHostIdForVm(1L)).thenReturn(clusterAndHost); List<StoragePoolHostVO> storagePoolHostVOS = new ArrayList<>(); storagePoolHostVOS.add(storagePoolHostVO); Mockito.when(storagePoolHostDao.listByPoolId(1L)).thenReturn(storagePoolHostVOS); Mockito.when(storagePoolHostVO.getHostId()).thenReturn(2L); Mockito.when(_hostDao.findById(2L)).thenReturn(hostVO); Mockito.when(hostVO.getGuid()).thenReturn("HostSystem:host-a@x.x.x.x"); List<Command> commandsList = vMwareGuru.finalizeMigrate(vm, volumeToPool); MigrateVmToPoolCommand migrateVmToPoolCommand = (MigrateVmToPoolCommand) commandsList.get(0); Assert.assertEquals("HostSystem:host-a@x.x.x.x", migrateVmToPoolCommand.getHostGuidInTargetCluster()); }
Reusable Method for MCI (click to expand)
private static Volume createMockVolume(Volume.Type volumeType) { Volume volume = Mockito.mock(Volume.class); Mockito.when(volume.getVolumeType()).thenReturn(volumeType); return volume; }

Mock Clone Instance #cloudstack_MCI_248

Reusable Method

private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

The refactoring details in each test cases


Test Case ID #cloudstack_Test_248_1

Test Case Name: isNativeTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + ConditionTO conditionTO = createMockConditionTO(counterTO); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); - when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); @@
Original Test Code (click to expand)
@Test public void isNativeTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_2

Test Case Name: isNativeFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); + ConditionTO conditionTO = createMockConditionTO(counterTO); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); - when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); @@
Original Test Code (click to expand)
@Test public void isNativeFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.isNative(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_3

Test Case Name: hasSourceVirtualRouterTrue(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO

Suggested Diff
@@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); + ConditionTO conditionTO = createMockConditionTO(counterTO); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); - when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterTrue() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertTrue(result); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_4

Test Case Name: hasSourceVirtualRouterFalse(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); + ConditionTO conditionTO = createMockConditionTO(counterTO); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); - when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); @@
Original Test Code (click to expand)
@Test public void hasSourceVirtualRouterFalse() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO = Mockito.mock(ConditionTO.class); CounterTO counterTO = Mockito.mock(CounterTO.class); AutoScaleVmProfileTO profileTO = Mockito.mock(AutoScaleVmProfileTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO)); when(conditionTO.getCounter()).thenReturn(counterTO); when(counterTO.getSource()).thenReturn(Counter.Source.CPU); boolean result = autoScaleManagerImplSpy.hasSourceVirtualRouter(groupTO); Assert.assertFalse(result); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_5

Test Case Name: getPolicyCounters(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO1

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); + ConditionTO conditionTO1 = createMockConditionTO(counterTO1); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); - when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); @@
Original Test Code (click to expand)
@Test public void getPolicyCounters() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_6

Test Case Name: getPolicyCounters(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO2

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); - ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); - when(conditionTO2.getCounter()).thenReturn(counterTO2); + ConditionTO conditionTO2 = createMockConditionTO(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); @@
Original Test Code (click to expand)
@Test public void getPolicyCounters() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getId()).thenReturn(scaleUpPolicyId); Map<Long, List<CounterTO>> result = autoScaleManagerImplSpy.getPolicyCounters(groupTO); Assert.assertEquals(1, result.size()); List<CounterTO> counters = result.get(scaleUpPolicyId); Assert.assertEquals(2, counters.size()); Assert.assertTrue(counters.contains(counterTO1)); Assert.assertTrue(counters.contains(counterTO2)); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_7

Test Case Name: checkConditionsForPolicy1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO1

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); + ConditionTO conditionTO1 = createMockConditionTO(counterTO1); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); - when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy1() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_8

Test Case Name: checkConditionsForPolicy1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO2

Suggested Diff
--- original +++ refactored @@ CounterTO counterTO1 = Mockito.mock(CounterTO.class); - ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); + ConditionTO conditionTO2 = createMockConditionTO(counterTO2); CounterTO counterTO2 = Mockito.mock(CounterTO.class); - when(conditionTO1.getCounter()).thenReturn(counterTO1); - when(conditionTO2.getCounter()).thenReturn(counterTO2); + when(conditionTO1.getCounter()).thenReturn(counterTO1); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy1() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.GT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.GE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertEquals(AutoScalePolicy.Action.SCALEUP, result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_9

Test Case Name: checkConditionsForPolicy2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO1

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); + ConditionTO conditionTO1 = createMockConditionTO(counterTO1); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); - when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy2() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_10

Test Case Name: checkConditionsForPolicy2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO2

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); - ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); + ConditionTO conditionTO2 = createMockConditionTO(counterTO2); CounterTO counterTO2 = Mockito.mock(CounterTO.class); - when(conditionTO1.getCounter()).thenReturn(counterTO1); - when(conditionTO2.getCounter()).thenReturn(counterTO2); + when(conditionTO1.getCounter()).thenReturn(counterTO1); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); @@
Original Test Code (click to expand)
@Test public void checkConditionsForPolicy2() { AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getId()).thenReturn(scaleUpPolicyId); when(policyTO.getAction()).thenReturn(AutoScalePolicy.Action.SCALEUP); Long counterId2 = counterId + 1; Long conditionId2 = conditionId + 1; when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId2); when(counterTO1.getId()).thenReturn(counterId); when(counterTO2.getId()).thenReturn(counterId2); String key1 = policyTO.getId() + "-" + conditionTO1.getId() + "-" + counterTO1.getId(); String key2 = policyTO.getId() + "-" + conditionTO2.getId() + "-" + counterTO2.getId(); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); countersMap.put(key1, (double) 100); countersNumberMap.put(key1, 2); countersMap.put(key2, (double) 100); countersNumberMap.put(key2, 1); when(conditionTO1.getRelationalOperator()).thenReturn(Condition.Operator.LT); when(conditionTO2.getRelationalOperator()).thenReturn(Condition.Operator.LE); when(conditionTO1.getThreshold()).thenReturn(40L); when(conditionTO2.getThreshold()).thenReturn(60L); AutoScalePolicy.Action result = autoScaleManagerImplSpy.checkConditionsForPolicy(countersMap, countersNumberMap, policyTO, Network.Provider.VirtualRouter); Assert.assertNull(result); Mockito.verify(conditionTO1).getRelationalOperator(); Mockito.verify(conditionTO2, never()).getRelationalOperator(); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_11

Test Case Name: setPerformanceMonitorCommandParams(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO1

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); + ConditionTO conditionTO1 = createMockConditionTO(counterTO1); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); - when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); @@
Original Test Code (click to expand)
@Test public void setPerformanceMonitorCommandParams() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_12

Test Case Name: setPerformanceMonitorCommandParams(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: conditionTO2

Suggested Diff
--- original +++ refactored @@ ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); - ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); + ConditionTO conditionTO2 = createMockConditionTO(counterTO2); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); - when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); - when(conditionTO2.getId()).thenReturn(conditionId + 1L); + when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); }
Original Test Code (click to expand)
@Test public void setPerformanceMonitorCommandParams() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO policyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO conditionTO1 = Mockito.mock(ConditionTO.class); CounterTO counterTO1 = Mockito.mock(CounterTO.class); ConditionTO conditionTO2 = Mockito.mock(ConditionTO.class); CounterTO counterTO2 = Mockito.mock(CounterTO.class); when(groupTO.getPolicies()).thenReturn(Arrays.asList(policyTO)); when(policyTO.getConditions()).thenReturn(Arrays.asList(conditionTO1, conditionTO2)); when(policyTO.getDuration()).thenReturn(scaleUpPolicyDuration); when(conditionTO1.getCounter()).thenReturn(counterTO1); when(conditionTO2.getCounter()).thenReturn(counterTO2); when(conditionTO1.getId()).thenReturn(conditionId); when(conditionTO2.getId()).thenReturn(conditionId + 1L); when(counterTO1.getName()).thenReturn(counterName + "-1"); when(counterTO2.getName()).thenReturn(counterName + "-2"); Map<String, String> params = new LinkedHashMap<>(); autoScaleManagerImplSpy.setPerformanceMonitorCommandParams(groupTO, params); Assert.assertEquals(7, params.size()); Assert.assertEquals("2", params.get("totalCounter")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration1")); Assert.assertEquals(String.valueOf(scaleUpPolicyDuration), params.get("duration2")); Assert.assertEquals(counterName + "-1", params.get("counter1")); Assert.assertEquals(counterName + "-2", params.get("counter2")); Assert.assertEquals(String.valueOf(conditionId), params.get("con1")); Assert.assertEquals(String.valueOf(conditionId + 1L), params.get("con2")); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_13

Test Case Name: updateCountersMap1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpConditionTO

Suggested Diff
--- original +++ refactored @@ when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); - ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + ConditionTO scaleUpConditionTO = createMockConditionTO(scaleUpCounterTO); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); - when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); - when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); @@
Original Test Code (click to expand)
@Test public void updateCountersMap1() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_14

Test Case Name: updateCountersMap1(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownConditionTO

Suggested Diff
--- original +++ refactored @@ when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); - ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + ConditionTO scaleDownConditionTO = createMockConditionTO(scaleDownCounterTO); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); - when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); @@
Original Test Code (click to expand)
@Test public void updateCountersMap1() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getDuration()).thenReturn(scaleDownPolicyDuration); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getId()).thenReturn(scaleDownConditionId); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getId()).thenReturn(scaleDownCounterId); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 1, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 2, AutoScaleValueType.INSTANT_VM, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, virtualMachineId, ResourceTag.ResourceObjectType.UserVm, (double) 3, AutoScaleValueType.INSTANT_VM, timestamp)); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleDownPolicyId), eq(scaleDownCounterId), any())).thenReturn(stats); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); Mockito.verify(autoScaleManagerImplSpy, times(6)).updateCountersMapWithInstantData(any(), any(), any(), any(), any(), any(), any(), any()); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_15

Test Case Name: updateCountersMap2(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpConditionTO

Suggested Diff
--- original +++ refactored @@ when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); - ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + ConditionTO scaleUpConditionTO = createMockConditionTO(scaleUpCounterTO); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); - when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); @@
Original Test Code (click to expand)
@Test public void updateCountersMap2() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); when(groupTO.getId()).thenReturn(vmGroupId); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getDuration()).thenReturn(scaleUpPolicyDuration); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getId()).thenReturn(scaleUpConditionId); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getId()).thenReturn(scaleUpCounterId); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO)); when(asGroupStatisticsDao.listDummyRecordsByVmGroup(eq(vmGroupId), any())).thenReturn(new ArrayList<>()).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleUpPolicyId), any())).thenReturn(new ArrayList<>()); when(asGroupStatisticsDao.listInactiveByVmGroupAndPolicy(eq(vmGroupId), eq(scaleDownPolicyId), any())).thenReturn(new ArrayList<>()); List<AutoScaleVmGroupStatisticsVO> stats = new ArrayList<>(); Date timestamp = new Date(); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 11, AutoScaleValueType.AGGREGATED_VM_GROUP, timestamp)); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 31, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 10 * 1000))); stats.add(new AutoScaleVmGroupStatisticsVO(vmGroupId, scaleUpPolicyId, scaleUpCounterId, domainRouterId, ResourceTag.ResourceObjectType.DomainRouter, (double) 51, AutoScaleValueType.AGGREGATED_VM_GROUP, new Date(timestamp.getTime() + 20 * 1000))); when(asGroupStatisticsDao.listByVmGroupAndPolicyAndCounter(eq(vmGroupId), eq(scaleUpPolicyId), eq(scaleUpCounterId), any())).thenReturn(stats); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(1); PowerMockito.doNothing().when(autoScaleManagerImplSpy).updateCountersMapWithProcessedData(any(), any(), any(), any()); Map<String, Double> countersMap = new HashMap<>(); Map<String, Integer> countersNumberMap = new HashMap<>(); autoScaleManagerImplSpy.updateCountersMap(groupTO, countersMap, countersNumberMap); // average per second Mockito.verify(autoScaleManagerImplSpy, times(1)).updateCountersMapWithProcessedData(any(), any(), any(), eq((double) 2)); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_16

Test Case Name: monitorVirtualRouterAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpConditionTO

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); + ConditionTO scaleUpConditionTO = createMockConditionTO(scaleUpCounterTO); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); - when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); @@
Original Test Code (click to expand)
@Test public void monitorVirtualRouterAsGroup() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_17

Test Case Name: monitorVirtualRouterAsGroup(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownConditionTO

Suggested Diff
@@ when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + ConditionTO scaleDownConditionTO = createMockConditionTO(scaleDownCounterTO); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); @@
Original Test Code (click to expand)
@Test public void monitorVirtualRouterAsGroup() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); when(asVmGroupMock.getId()).thenReturn(vmGroupId); when(asVmGroupMock.getMinMembers()).thenReturn(minMembers); when(asVmGroupMock.getMaxMembers()).thenReturn(maxMembers); when(autoScaleVmGroupVmMapDao.countAvailableVmsByGroup(vmGroupId)).thenReturn(minMembers); when(lbRulesMgr.toAutoScaleVmGroupTO(asVmGroupMock)).thenReturn(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); PowerMockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_18

Test Case Name: setGetAutoScaleMetricsCommandMetrics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleUpConditionTO

Suggested Diff
--- original +++ refactored @@ AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); + ConditionTO scaleUpConditionTO = createMockConditionTO(scaleUpCounterTO); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); @@
Original Test Code (click to expand)
@Test public void setGetAutoScaleMetricsCommandMetrics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Test Case ID #cloudstack_Test_248_19

Test Case Name: setGetAutoScaleMetricsCommandMetrics(File: C:\Java_projects\Apache\cloudstack\server\src\test\java\com\cloud\network\as\AutoScaleManagerImplTest.java)

Mock Object Variable Name: scaleDownConditionTO

Suggested Diff
--- original +++ refactored @@ AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); - ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); + ConditionTO scaleDownConditionTO = createMockConditionTO(scaleDownCounterTO); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); - when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); @@
Original Test Code (click to expand)
@Test public void setGetAutoScaleMetricsCommandMetrics() { AutoScaleVmGroupTO groupTO = Mockito.mock(AutoScaleVmGroupTO.class); AutoScalePolicyTO scaleUpPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleUpConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleUpCounterTO = Mockito.mock(CounterTO.class); when(scaleUpPolicyTO.getId()).thenReturn(scaleUpPolicyId); when(scaleUpPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleUpConditionTO)); when(scaleUpConditionTO.getCounter()).thenReturn(scaleUpCounterTO); when(scaleUpCounterTO.getSource()).thenReturn(Counter.Source.CPU); when(scaleUpCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleUpCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS.toString()); AutoScalePolicyTO scaleDownPolicyTO = Mockito.mock(AutoScalePolicyTO.class); ConditionTO scaleDownConditionTO = Mockito.mock(ConditionTO.class); CounterTO scaleDownCounterTO = Mockito.mock(CounterTO.class); when(scaleDownPolicyTO.getId()).thenReturn(scaleDownPolicyId); when(scaleDownPolicyTO.getConditions()).thenReturn(Arrays.asList(scaleDownConditionTO)); when(scaleDownConditionTO.getCounter()).thenReturn(scaleDownCounterTO); when(scaleDownCounterTO.getSource()).thenReturn(Counter.Source.VIRTUALROUTER); when(scaleDownCounterTO.getProvider()).thenReturn(Network.Provider.VirtualRouter.getName()); when(scaleDownCounterTO.getValue()).thenReturn(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS.toString()); when(groupTO.getPolicies()).thenReturn(Arrays.asList(scaleUpPolicyTO, scaleDownPolicyTO)); List<VirtualRouterAutoScale.AutoScaleMetrics> result = autoScaleManagerImplSpy.setGetAutoScaleMetricsCommandMetrics(groupTO); Assert.assertEquals(2, result.size()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_RECEIVED_AVERAGE_MBPS, result.get(0).getCounter()); Assert.assertEquals(VirtualRouterAutoScaleCounter.NETWORK_TRANSMIT_AVERAGE_MBPS, result.get(1).getCounter()); }
Reusable Method for MCI (click to expand)
private static ConditionTO createMockConditionTO(CounterTO counterTO) { ConditionTO conditionTO = Mockito.mock(ConditionTO.class); when(conditionTO.getCounter()).thenReturn(counterTO); return conditionTO; }

Mock Clone Instance #cloudstack_MCI_249

Reusable Method

// === Declare in class scope === private InputStream inputStream; // === Add to @BeforeEach method === @BeforeEach public void setUp() { inputStream = mock(InputStream.class); } // === Replace local variable in test with === inputStream;

The refactoring details in each test cases


Test Case ID #cloudstack_Test_249_1

Test Case Name: getSnhItfReqTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: inputStream

Suggested Diff
@@ @Test public void getSnhItfReqTest() throws Exception { Document document = mock(Document.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); - InputStream inputStream = mock(InputStream.class); + // removed local mock; replaced with global field `inputStream` DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); - when(httpEntity.getContent()).thenReturn(inputStream); + when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Original Test Code (click to expand)
@Test public void getSnhItfReqTest() throws Exception { Document document = mock(Document.class); CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenReturn(document); assertEquals(document, introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private InputStream inputStream; // === Add to @BeforeEach method === @BeforeEach public void setUp() { inputStream = mock(InputStream.class); } // === Replace local variable in test with === inputStream;

Test Case ID #cloudstack_Test_249_2

Test Case Name: getSnhItfReqWithParserConfigurationExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: inputStream

Suggested Diff
@@ CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); - InputStream inputStream = mock(InputStream.class); + // removed local mock; replaced with global field `inputStream` DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); @@ - when(httpEntity.getContent()).thenReturn(inputStream); + when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenThrow(ParserConfigurationException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2"));
Original Test Code (click to expand)
@Test public void getSnhItfReqWithParserConfigurationExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenThrow(ParserConfigurationException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private InputStream inputStream; // === Add to @BeforeEach method === @BeforeEach public void setUp() { inputStream = mock(InputStream.class); } // === Replace local variable in test with === inputStream;

Test Case ID #cloudstack_Test_249_3

Test Case Name: getSnhItfReqWithSAXExceptionTest(File: C:\Java_projects\Apache\cloudstack\plugins\network-elements\tungsten\src\test\java\org\apache\cloudstack\network\tungsten\vrouter\IntrospectApiConnectorImplTest.java)

Mock Object Variable Name: inputStream

Suggested Diff
@@ HttpEntity httpEntity = mock(HttpEntity.class); - InputStream inputStream = mock(InputStream.class); + // removed local mock; replaced with global field `inputStream` DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient);
Original Test Code (click to expand)
@Test public void getSnhItfReqWithSAXExceptionTest() throws Exception { CloseableHttpClient httpClient = mock(CloseableHttpClient.class); CloseableHttpResponse closeableHttpResponse = mock(CloseableHttpResponse.class); HttpEntity httpEntity = mock(HttpEntity.class); InputStream inputStream = mock(InputStream.class); DocumentBuilderFactory documentBuilderFactory = mock(DocumentBuilderFactory.class); DocumentBuilder documentBuilder = mock(DocumentBuilder.class); when(HttpClients.createDefault()).thenReturn(httpClient); when(httpClient.execute(any(HttpUriRequest.class))).thenReturn(closeableHttpResponse); when(closeableHttpResponse.getEntity()).thenReturn(httpEntity); when(httpEntity.getContent()).thenReturn(inputStream); when(DocumentBuilderFactory.newInstance()).thenReturn(documentBuilderFactory); when(documentBuilderFactory.newDocumentBuilder()).thenReturn(documentBuilder); when(documentBuilder.parse(any(InputStream.class))).thenThrow(SAXException.class); assertNull(introspectApiConnector.getSnhItfReq("948f421c-edde-4518-a391-09299cc25dc2")); }
Reusable Method for MCI (click to expand)
// === Declare in class scope === private InputStream inputStream; // === Add to @BeforeEach method === @BeforeEach public void setUp() { inputStream = mock(InputStream.class); } // === Replace local variable in test with === inputStream;